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


Posted in Javascript onMay 01, 2018

我在写有菜单栏的网页时,基本都会用响应式设计来适配移动端,例如把不重要的菜单选项隐藏,或者创建一个菜单按钮来控制的菜单的打开和关闭之类的。而我之前一直是使用JavaScript来实现菜单的打开和关闭的,但最近在网上看到有人使用CSS和HTML来实现这一功能,让我真正的感受到手里只要有一把锤,什么都可以做钉子。

实现之前先来看一下HTML标签和输入类型:

label

<label> 标签为 input 元素定义标注(标记)。

label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。

<label> 标签的 for 属性应当与相关元素的 id 属性相同。

Input Type: checkbox

<input type="checkbox"> 定义复选框。

复选框允许用户在有限数量的选项中选择零个或多个选项。

下面是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" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="external nofollow" >
  <style>
    .demo {
      text-align: center;
    }
    /* 点击checkbox时,菜单打开或显示 */
    #menu-checkbox:checked ~ .nav {
      display: none;
    }
    /* 隐藏checkbox的复选框 */
    #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>

效果:

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

点击上面的hamburger图标,菜单就会显示和隐藏。

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

以上所述是小编给大家介绍的不使用JavaScript实现菜单的打开和关闭效果,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
jquery radio 操作代码
Mar 16 Javascript
基于Jquery的文字自动截取(提供源代码)
Aug 09 Javascript
Javascript数组的排序 sort()方法和reverse()方法
Jun 04 Javascript
js时间日期和毫秒的相互转换
Feb 22 Javascript
javascript闭包的理解
Apr 01 Javascript
讲解JavaScript中for...in语句的使用方法
Jun 03 Javascript
开启BootStrap学习之旅
May 04 Javascript
Javascript之String对象详解
Jun 08 Javascript
简单理解vue中Props属性
Oct 27 Javascript
详解React native fetch遇到的坑
Aug 30 Javascript
vue中路由跳转不计入history的操作
Sep 21 Javascript
JavaScript原生数组函数实例汇总
Oct 14 Javascript
如何获取TypeScript的声明文件.d.ts
May 01 #Javascript
Vue项目中使用Vux的安装过程
May 01 #Javascript
在Vue项目中使用d3.js的实例代码
May 01 #Javascript
详解ajax的data参数错误导致页面崩溃
Apr 30 #Javascript
妙用缓存调用链实现JS方法的重载
Apr 30 #Javascript
JS实现的缓冲运动效果示例
Apr 30 #Javascript
Vue波纹按钮组件制作
Apr 30 #Javascript
You might like
php错误、异常处理机制(补充)
2012/05/07 PHP
sql注入与转义的php函数代码
2013/06/17 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
PHP反射机制用法实例
2014/08/28 PHP
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
js中eval详解
2012/03/30 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
在Node.js中实现文件复制的方法和实例
2014/06/05 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
2016/02/19 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
jQuery实现的简单日历组件定义与用法示例
2018/12/24 jQuery
javascript如何实现create方法
2019/11/04 Javascript
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
2018/02/18 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
python3学生名片管理v2.0版
2018/11/29 Python
Python类和对象的定义与实际应用案例分析
2018/12/27 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
基于python实现计算两组数据P值
2020/07/10 Python
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
2015年学雷锋活动总结
2015/02/06 职场文书
世界气象日活动总结
2015/02/27 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python