当前位置: 移动技术网 > IT编程>网页制作>CSS > 不使用JavaScript实现菜单的打开和关闭

不使用JavaScript实现菜单的打开和关闭

2018年04月26日  | 移动技术网IT编程  | 我要评论

我在写有菜单栏的网页时,基本都会用响应式设计来适配移动端,例如把不重要的菜单选项隐藏,或者创建一个菜单按钮来控制的菜单的打开和关闭之类的。而我之前一直是使用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图标,菜单就会显示和隐藏。

虽然是很简单的一个东西,不过它对于我而言更多的是一种启发。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网