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