我在写有菜单栏的网页时,基本都会用响应式设计来适配移动端,例如把不重要的菜单选项隐藏,或者创建一个菜单按钮来控制的菜单的打开和关闭之类的。而我之前一直是使用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图标,菜单就会显示和隐藏。
虽然是很简单的一个东西,不过它对于我而言更多的是一种启发。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
css3 flex布局 justify-content:space-between 最后一行左对齐
网友评论