css实现多级下拉菜单

文章目录

  1. html框架

  2. css样式

本文介绍了使用纯css制作多级下拉菜单的方法。

完成效果:

多级下拉菜单的制作

二级菜单

1.html框架

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div class="menu">
<ul>
<li><a href="#">首页</a></li>
<li class="second-menu">
<a href="#">分类 <div class="arrow"></div></a>
<ul>
<li class="third-menu">
<a href="#">服装 <div class="arrow"></div></a>
<ul>
<li><a href="">女装</a></li>
<li><a href="">男装</a></li>
<li><a href="">箱包</a></li>
</ul>
</li>
<li><a href="#">数码</a></li>
<li><a href="#">家电</a></li>
</ul>
</li>
<li><a href="#">关于我们</a></li>
<li><a href="#">联系我们</a></li>
</ul>
</div>

2.css样式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
a{
text-decoration: none;
color: black;
font-size: 18px;
}
a:hover{
text-decoration: none;
color: white;
background-color: #000;
}
/*箭头图标*/
.arrow{
position: absolute;
display: inline-block;
top: 15px;
left: 92px;
width: 0;
border-top: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid transparent;
border-left: 6px solid gray;
}
/*主要样式*/
.menu{
margin: auto;
height: 40px;
line-height: 40px;
background-color: #d5d5d5;
}
.menu ul{
display: block;
padding: 0;
list-style: none;
}
.menu ul li{
position: relative;
float: left;
text-align: center;
}
.menu ul li a{
display: block;
padding: 0 10px 0 10px;
width: 100px;
border-left: 1px solid white;
}
.menu ul li:first-child a{
border: none;
}
/*将多级菜单设置为隐藏*/
.menu .second-menu ul{
display: none;
}
.menu .second-menu ul .third-menu ul{
display: none;
}
/*二级菜单*/
.menu .second-menu:hover ul{
display: block;
}
.menu .second-menu:hover ul li{
float: none;
margin: 3px 0 3px 0;
background-color: #d5d5d5;
}
/*三级菜单*/
.menu .second-menu ul .third-menu:hover ul{
display: block;
}
.menu .second-menu ul .third-menu:hover ul{
position: absolute;
z-index: 10;
top: 0;
left: 120px;
float: none;
}
.menu .second-menu ul .third-menu:hover ul li:first-child{
margin-top: 0;
}
.menu .second-menu ul .third-menu:hover ul li{
margin-left: 3px;
}

箭头图标利用css中的border属性实现,通过以下语句可以得到各个方向的箭头:

1
2
3
4
5
6
7
8
9
/*向下的箭头*/
> .arrow{
> width: 0;
> border-top: 5px solid transparent;
> border-right: 5px solid transparent;
> border-bottom: 5px solid transparent;
> border-left: 5px solid #000;
> }
>

By litteredhat