纯css制作三级下拉菜单
2017-10-12 17:38
369 查看
css本身的功能就挺强大的,尤其是css3出来之后,大部分特效只用css3就能完成了,无需再费心思去想js怎么怎么做jQuery怎么怎么做,代码简洁质量轻巧。下面是本人用纯css制作的三级下拉菜单效果:
思路很简单,三级菜单直接用三层嵌套的ul布局:
<div class="nav"> <ul> <li> <a href="#">电器</a> <ul> <li> <a href="#">家用电器</a> <ul> <li><a href="#">生活电器</a></li> <li><a href="#">生活电器</a></li> <li><a href="#">个人护理</a></li> </ul> </li> </ul> </li> </ul> </div>
除一级ul外其余ul隐藏,当鼠标划过第一层li时该li下的下一级ul(二级菜单)显示
.nav>ul>li ul{ display: none; } .nav>ul>li:hover>a+ul{/*鼠标划过一级菜单的时候二级菜单显示*/ display: block; }
当鼠标划过第二层li时该li下的下一级ul(三级菜单)显示
.nav>ul>li>ul>li:hover ul{/*鼠标划过二级菜单的时候对应的三级菜单显示*/ display: block; }
基本思路就是这样,如果需要更多的特效,自己额外添加样式就可以了,下面附上图片中例子的完整代码:
<DOCTYPE html>
<html>
<head>
<title>三级下拉菜单</title>
<meta charset="utf-8">
<style type="text/css">
body,*{
margin: 0px;
padding: 0px;
font-size: 0px;
color: #555;
box-sizing:border-box;
}
ul{
list-style: none;
}
.banner{
width: 100%;
height: 100px;
}
.nav{
width: 100%;
height: 60px;
border: 0px;
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
background-color: #fff;
}
.nav>ul{
width: 80%;
margin:0 auto;
}
.nav>ul:after{
display: block;
content: '';
clear: both;
}
.nav>ul>li{
display: block;
width: 140px;
height: 100%;
padding-left: 20px;
float: left;
text-align: center;
background: url(img/bg.gif) no-repeat;
background-position: 21px 22px;
}
.nav>ul>li:hover{
background-color: #fff5f5;
}
.nav>ul>li a{
display: inline-block;
width: 100%;
height: 100%;
padding: 10px 20px;
font-size: 18px;
line-height: 40px;
text-decoration:none;
}
.nav>ul>li ul{ display: none; } .nav>ul>li:hover>a+ul{/*鼠标划过一级菜单的时候二级菜单显示*/ display: block; }
.nav>ul>li>ul{
width: 160px;
height: auto;
border: 1px solid #eee;
border-radius:3px;
position: relative;
top: 0px;
left: -20px;
}
.nav>ul>li>ul>li,.nav>ul>li>ul>li>ul>li{
display: block;
width: 100%;
height: 60px;
text-align: center;
border-bottom: 1px solid #eee;
}
.nav>ul>li>ul>li:last-child,.nav>ul>li>ul>li>ul>li:last-child{
border: 0px;
}
.nav>ul>li>ul>li:hover,.nav>ul>li>ul>li>ul>li:hover{/*与用户的交互不能少*/
background: #fff9f9;
}
.nav>ul>li>ul>li:hover ul{/*鼠标划过二级菜单的时候对应的三级菜单显示*/ display: block; }
.nav>ul>li>ul>li>ul{
width: 160px;
height: auto;
border: 1px solid #eee;
border-radius:3px;
position: relative;
top: -60px;
left: 100%;
}
</style>
</head>
<body>
<div class="banner"></div>
<div class="nav">
<ul>
<li>
<a href="#">电器</a>
<ul>
<li>
<a href="#">家用电器</a>
<ul>
<li><a href="#a" target="_self">生活电器</a></li>
<li><a href="#a" target="_self">生活电器</a></li>
<li><a href="#a" target="_self">个人护理</a></li>
</ul>
</li>
<li>
<a href="#">数码</a>
<ul>
<li><a href="#a" target="_self">平板电脑</a></li>
<li><a href="#a" target="_self">数码相机</a></li>
<li><a href="#a" target="_self">电玩动漫</a></li>
</ul>
</li>
<li>
<a href="#">手机</a>
</li>
</ul>
</li>
<li>
<a href="#">服饰</a>
<ul>
<li>
<a href="#">男装</a>
<ul>
<li><a href="#a" target="_self">商务男装</a></li>
<li><a href="#a" target="_self">休闲运动</a></li>
</ul>
</li>
<li>
<a href="#">女装</a>
<ul>
<li><a href="#a" target="_self">新品</a></li>
<li><a href="#a" target="_self">明星网红</a></li>
<li><a href="#a" target="_self">时尚穿搭</a></li>
</ul>
</li>
<li>
<a href="#">童装</a>
<ul>
<li><a href="#a" target="_self">演出服</a></li>
<li><a href="#a" target="_self">运动装</a></li>
<li><a href="#a" target="_self">连衣裙</a></li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#">食品</a>
<ul>
<li>
<a href="#">生活零食</a>
<ul>
<li><a href="#a" target="_self">干果</a></li>
<li><a href="#a" target="_self">辣条</a></li>
<li><a href="#a" target="_self">薯片</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</body>
</html>
相关文章推荐
- 纯DIV+CSS制作的下拉菜单,二级下拉菜单,三级下拉菜单
- css制作三级下拉菜单2
- css制作三级下拉菜单
- 纯DIV+CSS制作的下拉菜单,二级下拉菜单,三级下拉菜单(无JS)
- 仅用css制作的手风琴下拉菜单
- css下拉菜单制作原理
- CSS:用CSS制作下拉菜单
- html+css简单下拉菜单制作
- JS+CSS 制作的超级简单的下拉菜单附图
- 静态网页,原生代码制作,有三级下拉菜单
- DIV+CSS布局下拉菜单制作
- joomla中css 下拉菜单的制作
- DIV+CSS制作的下拉菜单
- css 制作的三级菜单也可以当做二级菜单使用
- 运用css,对于下拉菜单的制作
- 无javascript,纯CSS制作的网页下拉菜单
- 采用CSS和JS的下拉菜单的制作
- CSS级联下拉菜单的制作
- css制作下拉菜单
- CSS制作多极下拉菜单