不使用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 相关文章推荐
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
Dec 09 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
扒一扒JavaScript 预解释
Jan 28 Javascript
AngularJS表单和输入验证实例
Nov 02 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
Dec 06 Javascript
jQuery电话号码验证实例
Jan 05 Javascript
JS图片压缩(pc端和移动端都适用)
Jan 12 Javascript
BootStrap Datetimepicker 汉化的实现代码
Feb 10 Javascript
基于jQuery实现的设置文本区域的光标位置
Jun 15 jQuery
react-router4按需加载(踩坑填坑)
Jan 06 Javascript
vue实现多组关键词对应高亮显示功能
Jul 25 Javascript
JS 5种遍历对象的方式
Jun 16 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的计数器程序
2006/10/09 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
xmlHTTP实例
2006/10/24 Javascript
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
vue实现多个元素或多个组件之间动画效果
2018/09/25 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
python创建临时文件夹的方法
2015/07/06 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
python实现FTP循环上传文件
2020/03/20 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
浅谈基于Canvas的手绘风格图形库Rough.js
2018/03/19 HTML / CSS
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
Java如何格式化日期
2012/08/07 面试题
几个判断型的面试题
2012/07/03 面试题
社团文化节策划书
2014/02/01 职场文书
中国好声音广告词
2014/03/18 职场文书
计算机系本科生求职信
2014/05/31 职场文书
医学检验专业自荐信
2014/09/18 职场文书
老公保证书
2015/01/17 职场文书
婚宴邀请函
2015/01/30 职场文书
入党群众意见范文
2015/06/02 职场文书
院系推荐意见
2015/06/05 职场文书
文艺节目主持词
2015/07/06 职场文书