CSS3制作Dropdown下拉菜單的方法

:target 是CSS3 中新增的一個偽類,用以匹配當前頁面的URI中某個標志符的目標元素(比如說當前頁面URL下添加#comment就會定位到id=“comment”的位置,俗稱錨)。CSS3 為這個動作賦予了更加多的功能——就如同:hover 一樣你可以做一些樣式定義。
先上效果圖
正如標題所說,本文是教你如何巧用CSS3:target偽類制作Dropdown下拉菜單,原生HTML+CSS,無JavaScript。為了吸引各位往下看,先上實際例子,再進行剖析。
Duang~ 實際例子其實就是DeveMobile 主題的右上角那個按鈕,你點一下就會有一個Dropdown下拉菜單出現,在其他區(qū)域點擊返回原狀。請用手機掃碼查看:
或者直接看這個gif 圖片:
實例剖析
從解釋原理的角度我們將HTML 拉出來最小化代碼如下:
- <a href="#dropdown-box" class="dropdown-switcher"></a>
- <div id="dropdown-box">
- <a href="##" class="close"></a>
- <div class="dropdown">
- <ul>
- <li></li>
- <li></li>
- </ul>
- </div>
大體上上面的HTML代碼可以分為兩部分,一部分是一個出發(fā)下拉動作的入口(我習慣稱為“開關”)——通常是一個button(實例是將a標簽替換為一個button的功能);一部分就是觸發(fā)動作的下拉菜單顯示了。
可能你會問close 這個類修飾的a標簽那段是做什么的?當你觸發(fā)下拉菜單后,有時候需要做關閉(返回原狀)的動作,而從具體情況(比如說如本實例觸發(fā)菜單后菜單將原來的開關都掩蓋了)或者用戶體驗上考慮,最好是除菜單區(qū)域外的整個屏幕都隨便盲點就能關閉菜單。這個a標簽就是實現在打開開關后產生一個透明的遮罩層覆蓋到屏幕上。
有了上面的思路,那么再具體化為下面的代碼(忽略個別無關緊要的樣式,SASS代碼):
- #dropdown-box {
- .dropdown {
- opacity: 0;
- @include transform(scale(0, 0));
- @include transition(all 0.3s ease);
- overflow: hidden;
- z-index: 100;
- transform-origin: 100% 0;
- -webkit-transform-origin: 100% 0;
- -ms-transform-origin: 100% 0;
- -moz-transform-origin: 100% 0;
- }
- }
- .close {
- display: none;
- position: fixed;
- top: 0;
- rightright: 0;
- bottombottom: 0;
- left: 0;
- z-index: 999;
- width: 100%;
- height: 100%;
- background: transparent;
- }
- &:target .dropdown {
- @include transform(scale(1, 1));
- opacity: 1;
- z-index: 9999;
- }
- &:target .close {
- display: block;
- }
- }
稍微解釋下上面的SASS代碼:默認的情況下是隱藏下拉菜單(采用透明屬性opacity 與CSS3的transform的scale 縮小至0,遮罩層則默認隱藏);當開關觸發(fā)后透明度變?yōu)?且放到至正常的一倍,同時遮罩層顯示。為了讓下拉菜單更顯“下拉”的情況,采用CSS3的origin定位下轉換原點。
注意下兼容性,所有主流瀏覽器均支持 :target,除了 IE8 及更早的版本,移動端的話直接用。稍微理解下你就可以運用到自己的項目中了,have fun!
相關文章
- 這篇文章主要介紹了純html+css制作三級下拉菜單,如何制作下拉菜單效果,三級下拉菜單又是怎么實現的,本文為大家揭曉,感興趣的小伙伴們可以參考一下2016-03-10
- 基于html5代碼實現折疊菜單附源碼下載,效果逼真,非常方便使用,對html5折疊菜單感興趣的朋友可以參考下2015-11-27
jQuery+HTML5實現的帶鏈接箭頭的多級下拉菜單導航特效源碼
是一段實現了擁有鏈接箭頭及鼠標懸浮展開效果的多級下拉導航菜單代碼,此段代碼的實例中實現了四級菜單導航,有需要的朋友們也可以自己添加或刪除一級或幾級菜單導航,本段2014-12-24HTML5+CSS3實現的超級可愛的鬼臉表情下拉菜單效果源碼
這款HTML5/CSS3鬼臉表情下拉菜單真的很特別,雖然菜單的實現并沒有利用復雜的HTML5/CSS3技術,但是創(chuàng)意的確不錯2014-11-19HTML5/CSS3自定義浮動Select 超炫下拉菜單動畫源碼
今天我們要分享一款HTML5/CSS3懸浮的自定義Select下拉菜單,這個CSS3菜單利用CSS3特性可以浮動在網頁上,并帶有陰影效果,同時,展開下拉框時會以旋轉形式彈出一個二級菜單2014-11-08- 可輸入下拉菜單,不可思議是不是, 本例通過一些方法實現這個不可能的事情,感興趣的朋友可以參考下2014-09-06
- 這篇文章主要介紹了html下拉菜單提交后如何保留選中值而不返回默認值,方法雖簡單,但比較實用,需要的朋友可以參考下2014-09-06
jquery實現強大功能的下拉菜單(可以放任意html內容)
下拉菜單項可以是任意形式的,比如你可以在下拉菜單里放上登陸框,圖文內容,表格等等2013-05-06- 這篇文章主要介紹了CSS中下拉菜單和表單以及彈出層的簡單筆記,是一些CSS入門學習中的基礎知識,需要的朋友可以參考下2015-07-16
- 是一段實現了鼠標放在導航時,該導航會下拉出相應內容的二級菜單的效果代碼,本段代碼適應于所有網頁使用,有興趣的朋友們可以前來下載使用2015-03-12