我在寫有菜單欄的網(wǎng)頁(yè)時(shí),基本都會(huì)用響應(yīng)式設(shè)計(jì)來(lái)適配移動(dòng)端,例如把不重要的菜單選項(xiàng)隱藏,或者創(chuàng)建一個(gè)菜單按鈕來(lái)控制的菜單的打開(kāi)和關(guān)閉之類的。而我之前一直是使用JavaScript來(lái)實(shí)現(xiàn)菜單的打開(kāi)和關(guān)閉的,但最近在網(wǎng)上看到有人使用CSS和HTML來(lái)實(shí)現(xiàn)這一功能,讓我真正的感受到手里只要有一把錘,什么都可以做釘子。
實(shí)現(xiàn)之前先來(lái)看一下HTML標(biāo)簽和輸入類型:
label
<label> 標(biāo)簽為 input 元素定義標(biāo)注(標(biāo)記)。
label 元素不會(huì)向用戶呈現(xiàn)任何特殊效果。不過(guò),它為鼠標(biāo)用戶改進(jìn)了可用性。如果您在 label 元素內(nèi)點(diǎn)擊文本,就會(huì)觸發(fā)此控件。就是說(shuō),當(dāng)用戶選擇該標(biāo)簽時(shí),瀏覽器就會(huì)自動(dòng)將焦點(diǎn)轉(zhuǎn)到和標(biāo)簽相關(guān)的表單控件上。
<label> 標(biāo)簽的 for 屬性應(yīng)當(dāng)與相關(guān)元素的 id 屬性相同。
Input Type: checkbox
<input type="checkbox"> 定義復(fù)選框。
復(fù)選框允許用戶在有限數(shù)量的選項(xiàng)中選擇零個(gè)或多個(gè)選項(xiàng)。
下面是demo的代碼:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>menu demo</title> <link rel="stylesheet" rel="external nofollow" > <style> .demo { text-align: center; } /* 點(diǎn)擊checkbox時(shí),菜單打開(kāi)或顯示 */ #menu-checkbox:checked ~ .nav { display: none; } /* 隱藏checkbox的復(fù)選框 */ #menu-checkbox { display: none; } .nav ul{ list-style: none; margin: 0; padding: 0; font-size: 20px; } .glyphicon-menu-hamburger { font-size: 30px; margin-top: 50px; } </style></head><body> <div class="demo"> <!-- label綁定checkbox --> <label for="menu-checkbox"><span class="glyphicon glyphicon-menu-hamburger"></label> <input id="menu-checkbox" type="checkbox"> <div class="nav"> <ul> <li>aaa</li> <li>bbb</li> <li>ccc</li> <li>ddd</li> </ul> </div> </div></body></html>效果:

點(diǎn)擊上面的hamburger圖標(biāo),菜單就會(huì)顯示和隱藏。
雖然是很簡(jiǎn)單的一個(gè)東西,不過(guò)它對(duì)于我而言更多的是一種啟發(fā)。
以上所述是小編給大家介紹的不使用JavaScript實(shí)現(xiàn)菜單的打開(kāi)和關(guān)閉效果,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注