不使用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对象和DOM对象相互转化
Apr 24 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
May 07 Javascript
jquery如何改变html标签的样式(两种实现方法)
Jan 16 Javascript
JavaScript 面向对象与原型
Apr 10 Javascript
JavaScript实现横向滑出的多级菜单效果
Oct 09 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
Mar 22 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
Mar 29 Javascript
JS实现搜索框文字可删除功能
Dec 28 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
May 18 Javascript
p5.js临摹动态图形实现方法详解
Oct 23 Javascript
vuex state中的数组变化监听实例
Nov 06 Javascript
解决vue+webpack项目接口跨域出现的问题
Aug 10 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第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
PHP 代码规范小结
2012/03/08 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
实例讲解php数据访问
2016/05/09 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
2016/05/10 Javascript
老生常谈原生JS执行环境与作用域
2016/11/22 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
JS常见构造模式实例对比分析
2018/08/27 Javascript
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
Windows下Node爬虫神器Puppeteer安装记
2019/01/09 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
Python科学计算之Pandas详解
2017/01/15 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
用Python读取几十万行文本数据
2018/12/24 Python
python lambda表达式(匿名函数)写法解析
2019/09/16 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
使用phonegap检测网络状态的方法
2017/03/30 HTML / CSS
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
web字体加载方案优化小结
2019/11/29 HTML / CSS
英国邮购活的植物主要供应商:Gardening Direct
2019/01/28 全球购物
Footshop乌克兰:运动鞋的最大选择
2019/12/01 全球购物
开放系统互连参考模型
2016/06/29 面试题
高校师德师风自我剖析材料
2014/09/29 职场文书
家长意见书
2015/06/04 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
Redis读写分离搭建的完整步骤
2021/09/14 Redis
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫