不使用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 相关文章推荐
document.compatMode介绍
May 21 Javascript
jquery 学习笔记 传智博客佟老师附详细注释
Sep 12 Javascript
jQuery-ui中自动完成实现方法
Jun 10 Javascript
打造基于jQuery的高性能TreeView(asp.net)
Feb 23 Javascript
真正的JQuery.ajax传递中文参数的解决方法
May 28 Javascript
JavaScript数值数组排序示例分享
May 27 Javascript
javascript三元运算符用法实例
Apr 16 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
Dec 28 Javascript
JS验证input输入框(字母,数字,符号,中文)
Mar 23 Javascript
Vue.js render方法使用详解
Apr 05 Javascript
JavaScript数组去重的多种方法(四种)
Sep 19 Javascript
vue实现下载文件流完整前后端代码
Nov 17 Vue.js
如何获取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 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
thinkphp3.x中display方法及show方法的用法实例
2016/05/19 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
jQuery插件实现多级联动菜单效果
2015/12/01 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
python GUI实例学习
2017/11/21 Python
Django 登陆验证码和中间件的实现
2018/08/17 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
使用Python实现分别输出每个数组
2019/12/06 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
番木瓜健康和保健产品第一大制造商:Herbal Papaya
2017/04/25 全球购物
电影T恤、80年代T恤和80年代服装:TV Store Online
2020/01/05 全球购物
J2EE是技术还是平台还是框架
2016/08/14 面试题
运动会致辞稿50字
2014/02/04 职场文书
优秀医生事迹材料
2014/02/12 职场文书
优秀大学生职业生涯规划书
2014/02/27 职场文书
英语系本科生求职信
2014/07/15 职场文书
环境卫生工作汇报材料
2014/10/28 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
升学宴学生致辞
2015/07/27 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
高三物理教学反思
2016/02/20 职场文书
导游词之西安骊山
2019/12/20 职场文书
如何Tomcat中使用ipv6地址
2022/05/06 Servers
Redis批量生成数据的实现
2022/06/05 Redis