一、原理:

使用label与input来实现,label和复选框是有关联的,label的for属性对应的是input的id,所以点击label时,它就会勾选或取消复选框。

如果我们需要让菜单默认显示,只需要将input的checked属性设为true即可。

因为用到了css3的:checked属性,因此只适用于IE9+浏览器。

label可以设置为display:block,从而可以实现在里面实现换行等块级元素的需求。

二、代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>只用css3实现menu的toggle效果</title>
<style>
.wrap{
width:400px;
margin:50px auto 0;
}
label {
cursor: pointer;
font-size: 14px;
padding:10px;
border:1px solid #00A000;
}
#menu-toggle {
display: none; /* hide the checkbox */
}
#menu {
display: none;
list-style: none;
width:200px;
border:1px solid #00a0e9;
}
#menu li{
margin: 10px 0;
}
#menu li a{
text-decoration: none;
}
#menu li a:active{
color:#00a5e0;
}
/*这句最关键*/
#menu-toggle:checked + #menu {
display: block;
}
</style>
</head>
<body>
<div class="wrap">
<label for="menu-toggle">
点击显示隐藏菜单
</label>
<input type="checkbox" id="menu-toggle"/>
<ul id="menu">
<li><a href="http://www.baidu.com">First link</a></li>
<li><a href="#">Second link</a></li>
<li><a href="#">Third link</a></li>
</ul>
</div>
<p>适用于Chrome,FF,IE9+浏览器</p>
</body>
</html>

本文参考http://www.outofscope.com/css-only-menu-toggle-no-javascript-required/

最新文章

  1. Azure SQL Database (22) 迁移部分数据到Azure Stretch Database
  2. 【JAVA、C++】LeetCode 010 Regular Expression Matching
  3. GRE学习日志
  4. Win7 下硬盘安装Linux Mint 17
  5. 统计计算与R语言的资料汇总(截止2016年12月)
  6. CCEditBox用法
  7. js验证身份证格式
  8. KVO 进阶
  9. iOS真机测试友盟碰到错误linker command failed with exit code 1 (use -v to see invocation) 百度地图的检索失败 sqlite 错误码
  10. 201521123016 《Java程序设计》第7周学习总结
  11. 将 Hexo 个人博客同时部署到 GitHub 和 Coding 上
  12. .ancestors *效果
  13. nodejs笔记之流(stream)
  14. day7_子类的拷贝构造与拷贝赋值
  15. 30. Spring Boot ActiveMQ
  16. 04 自学Aruba之定制AC的protal认证登陆页面
  17. oracle查询重复数据方法
  18. PowerShell使用ServicePrincipal登陆Azure
  19. 【mybatis源码学习】mybtias基础组件-反射工具
  20. 一行一行读Java源码——LinkedBlockingQueue

热门文章

  1. Hybrid App开发之Html基本标签使用
  2. MySQL内置函数:IP地址点分式与数字转换函数(INET_ATON/INET_NTOA)
  3. linux文件查找-find命令
  4. 标签中的name属性和ID属性的区别
  5. JQuery图片轮播实例
  6. php 关于金额的几种计算方式
  7. MongoDB之Replica Sets环境搭建
  8. R-codes-tips
  9. poj-2533 longest ordered subsequence(动态规划)
  10. Linux交换分区swap