純CSS制作的響應(yīng)式折疊菜單分享

這個(gè)菜單能居左、居中和居右對齊,不像之前文章提到的菜單需要靠點(diǎn)擊在顯示和隱藏之間進(jìn)行切換。它也有一個(gè)標(biāo)記顯示激活/當(dāng)前菜單項(xiàng),并且它能作用在所有移動平臺和包括IE在內(nèi)的所有桌面瀏覽器。
首先,看看Demo的效果:Demo
一、 目的
本教程的目的是展示如何將規(guī)律的列表菜單變成一個(gè)較小的顯示下拉菜單。
這個(gè)技巧在由許多鏈接組成的導(dǎo)航上非常有用,例如下面的截圖,可以將所有按鈕壓縮成一個(gè)優(yōu)雅的下拉。
二、Nav HTML標(biāo)記
- <nav class="nav">
- <ul>
- <li class="current"><a href="#">Portfolio</a></li>
- <li><a href="#">Illustration</a></li>
- <li><a href="#">Web Design</a></li>
- <li><a href="#">Print Media</a></li>
- <li><a href="#">Graphic Design</a></li>
- </ul>
- </nav>
三、CSS
- /* nav */
- .nav {
- position: relative;
- margin: 20px 0;
- }
- .nav ul {
- margin: 0;
- padding: 0;
- }
- .nav li {
- margin: 0 5px 10px 0;
- padding: 0;
- list-style: none;
- display: inline-block;
- }
- .nav a {
- padding: 3px 12px;
- text-decoration: none;
- color: #999;
- line-height: 100%;
- }
- .nav a:hover {
- color: #000;
- }
- .nav .current a {
- background: #999;
- color: #fff;
- border-radius: 5px;
- }
四、居中和右對齊
正如前面提到的,可以同過text-align屬性改變對齊方式。
- /* right nav */
- .nav.rightright ul {
- text-align: rightright;
- }
- /* center nav */
- .nav.center ul {
- text-align: center;
- }
五、IE的支持
在IE 8以及更早版本中,是不支持HTML5的nav標(biāo)簽和媒體查詢。引入css3-mediaqueries.js(或 respond.js) 和 html5shim.js 提供后備的兼容處理。如果你不想用html5shim.js,可以用div代替nav
- <!--[if lt IE 9]>
- <script src="http://css3-mediaqueries-js.googlecode.com/files/css3-mediaqueries.js"></script>
- <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
- <![endif]—>
六、響應(yīng)式
現(xiàn)在有趣的部分來了——媒體查詢菜單的響應(yīng)性。如果你對響應(yīng)式設(shè)計(jì)不熟悉,可以閱讀之前我寫的關(guān)于responsive design (后續(xù)翻譯)and media query的文章。
在600 px斷點(diǎn),我把nav元素設(shè)置成相對定位,這樣,我就能對ul元素進(jìn)行絕對定位了。通過display:none,我隱藏了所有的li元素,但保持當(dāng)前的li元素以塊元素顯示。然后,當(dāng)鼠標(biāo)懸浮于nav元素時(shí),將所有l(wèi)i添加display:block.為了標(biāo)記當(dāng)前的li元素,我會添加一個(gè)圖標(biāo)。對于居中和右對齊,對定位的ul元素使用left和right屬性。看看最終的Demo效果:
- @media screen and (max-width: 600px) {
- .nav {
- position: relative;
- min-height: 40px;
- }
- .nav ul {
- width: 180px;
- padding: 5px 0;
- position: absolute;
- top: 0;
- left: 0;
- border: solid 1px #aaa;
- background: #fff url(images/icon-menu.png) no-repeat 10px 11px;
- border-radius: 5px;
- box-shadow: 0 1px 2px rgba(0,0,0,.3);
- }
- .nav li {
- display: none; /* hide all <li> items */
- margin: 0;
- }
- .nav .current {
- display: block; /* show only current <li> item */
- }
- .nav a {
- display: block;
- padding: 5px 5px 5px 32px;
- text-align: left;
- }
- .nav .current a {
- background: none;
- color: #666;
- }
- /* on nav hover */
- .nav ul:hover {
- background-image: none;
- }
- .nav ul:hover li {
- display: block;
- margin: 0 0 5px;
- }
- .nav ul:hover .current {
- background: url(images/icon-check.png) no-repeat 10px 7px;
- }
- /* right nav */
- .nav.rightright ul {
- left: auto;
- rightright: 0;
- }
- /* center nav */
- .nav.center ul {
- left: 50%;
- margin-left: -90px;
- }
- }
相關(guān)文章
- 這篇文章主要為大家介紹了純CSS實(shí)現(xiàn)圓角折疊菜單的方法,通過多個(gè)寬度漸進(jìn)變化的頁面元素堆加模擬圓角效果,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-19
CSS3實(shí)現(xiàn)的支持同時(shí)折疊多個(gè)菜單的手風(fēng)琴菜單特效源碼
今天開始我們要來分享一些各種樣式的手風(fēng)琴菜單,這次分享的CSS3手風(fēng)琴菜單可以同時(shí)折疊展開多個(gè)菜單項(xiàng)2014-10-24CSS3實(shí)現(xiàn)的垂直手風(fēng)琴折疊菜單特效源碼
這是一款基于CSS3實(shí)現(xiàn)的垂直手風(fēng)琴折疊菜單特效源碼,這款CSS3手風(fēng)琴菜單的每一個(gè)菜單項(xiàng)都有小圖標(biāo),而且只能有一項(xiàng)展開,更有意思的是,在菜單折疊和展開式右側(cè)的箭頭也會2014-09-30css3和jquery實(shí)現(xiàn)的可折疊導(dǎo)航菜單適合放在手機(jī)網(wǎng)頁的導(dǎo)航菜單
今天為大家在介紹的是一款適合放在手機(jī)網(wǎng)頁的導(dǎo)航菜單。點(diǎn)擊列表圖標(biāo)以下拉式的形式顯示菜單,單擊關(guān)閉,動畫關(guān)閉。效果相當(dāng)不錯,喜歡的朋友可以學(xué)習(xí)下2014-09-02jQuery/CSS3實(shí)現(xiàn)的可折疊側(cè)邊欄菜單特效源碼
這是一款非常優(yōu)秀的jQuery菜單插件源碼,這款菜單插件是可折疊的側(cè)邊欄菜單,其菜單特點(diǎn)是點(diǎn)擊按鈕可以實(shí)現(xiàn)展開和折疊菜單,并伴隨動畫效果。而且每一個(gè)菜單項(xiàng)都有一個(gè)小圖2014-09-01基于CSS3實(shí)現(xiàn)的3D折疊展開動畫菜單特效源碼
這是一款基于CSS3實(shí)現(xiàn)的菜單,與之前幾款不同的是,這款CSS3菜單有3D的動畫效果,當(dāng)下拉菜單展開和折疊時(shí),將會出現(xiàn)3D的效果,當(dāng)然這種3D的效果非常簡單,使用時(shí)只需要設(shè)置2014-08-20基于jquery+css3實(shí)現(xiàn)左右搖擺可滑動展開折疊圓形導(dǎo)航菜單
CSS3實(shí)現(xiàn)的一些菜單導(dǎo)航效果,在不支持CSS3屬性的瀏覽器下效果較差一些,展開效果后會看到文字、搜索框等等2013-02-20- 這篇文章主要介紹了純css實(shí)現(xiàn)多級折疊菜單折疊樹效果,運(yùn)用checkbox的checked值來判斷下級欄目是否展開,通過css3選擇器提供的checked偽類來實(shí)現(xiàn)此效果,感興趣的朋友參考2018-03-29