我在寫有菜單欄的網頁時,基本都會用響應式設計來適配移動端,例如把不重要的菜單選項隱藏,或者創建一個菜單按鈕來控制的菜單的打開和關閉之類的。而我之前一直是使用JavaScript來實現菜單的打開和關閉的,但最近在網上看到有人使用CSS和HTML來實現這一功能,讓我真正的感受到手里只要有一把錘,什么都可以做釘子。
實現之前先來看一下HTML標簽和輸入類型:
label
<label> 標簽為 input 元素定義標注(標記)。
label 元素不會向用戶呈現任何特殊效果。不過,它為鼠標用戶改進了可用性。如果您在 label 元素內點擊文本,就會觸發此控件。就是說,當用戶選擇該標簽時,瀏覽器就會自動將焦點轉到和標簽相關的表單控件上。
<label> 標簽的 for 屬性應當與相關元素的 id 屬性相同。
Input Type: checkbox
<input type="checkbox"> 定義復選框。
復選框允許用戶在有限數量的選項中選擇零個或多個選項。
下面是demo的代碼:
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
7 <title>menu demo</title>
8 <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
9 <style>
10 .demo {
11 text-align: center;
12 }
13 /* 點擊checkbox時,菜單打開或顯示 */
14 #menu-checkbox:checked ~ .nav {
15 display: none;
16 }
17 /* 隱藏checkbox的復選框 */
18 #menu-checkbox {
19 display: none;
20 }
21 .nav ul{
22 list-style: none;
23 margin: 0;
24 padding: 0;
25 font-size: 20px;
26 }
27 .glyphicon-menu-hamburger {
28 font-size: 30px;
29 margin-top: 50px;
30 }
31 </style>
32 </head>
33 <body>
34 <div class="demo">
35 <!-- label綁定checkbox -->
36 <label for="menu-checkbox"><span class="glyphicon glyphicon-menu-hamburger"></label>
37 <input id="menu-checkbox" type="checkbox">
38 <div class="nav">
39 <ul>
40 <li>aaa</li>
41 <li>bbb</li>
42 <li>ccc</li>
43 <li>ddd</li>
44 </ul>
45 </div>
46 </div>
47 </body>
48 </html>
效果:
點擊上面的hamburger圖標,菜單就會顯示和隱藏。
雖然是很簡單的一個東西,不過它對于我而言更多的是一種啟發。