简介:本文通过HTML与CSS相集合的方式,来实现二级导航菜单。
HTML构建骨架
<body>
<ul class="nav1">
<li>水果
<ul class="nav2">
<li>苹果</li>
<li>香梨</li>
<li>火龙果</li>
<li>香蕉</li>
</ul>
</li>
<li>蔬菜
<ul class="nav2">
<li>西红柿</li>
<li>土豆</li>
<li>青菜</li>
<li>洋葱</li>
</ul>
</li>
<li>日用品
<ul class="nav2">
<li>毛笔</li>
<li>盆子</li>
<li>筒子</li>
<li>菜刀</li>
</ul>
</li>
<li>影视作品
<ul class="nav2">
<li>动漫</li>
<li>电影</li>
<li>电视剧</li>
<li>戏剧</li>
</ul>
</li>
</ul>
</body>
CSS渲染
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body{
background: url(imgs/img.jpg);
/* 设置背景铺满 */
background-repeat:no-repeat;
background-size:100%;
}
* {
margin: 0;
padding: 0;
}
.nav1 {
list-style: none; /*清除列表样式*/
display: flex; /*弹性盒子布局*/
width: 100%;
}
.nav1>li {
width: 100px;
height: 50px;
line-height: 50px;
text-align: center;
flex: 1; /*关键语句*/
}
.nav2>li {
height: 0;
background-color: skyblue;
overflow: hidden; /*溢出隐藏 通过设置height:0 来让内容溢出 然后通过溢出隐藏来隐藏二级菜单/
margin-top: 3px; /*设置上方的外边距*/
transition: 1s; /*设置出现延迟时间*/
}
.nav1>li:hover .nav2>li { /*一级导航栏hover的时候 二级导航栏的情况*/
height: 50px;
}
.nav1>li:hover { /*一级导航栏悬浮的时候的状态*/
background-color: pink;
height: 50px;
}
</style>
</head>
<body>
<ul class="nav1">
<li>水果
<ul class="nav2">
<li>苹果</li>
<li>香梨</li>
<li>火龙果</li>
<li>香蕉</li>
</ul>
</li>
<li>蔬菜
<ul class="nav2">
<li>西红柿</li>
<li>土豆</li>
<li>青菜</li>
<li>洋葱</li>
</ul>
</li>
<li>日用品
<ul class="nav2">
<li>毛笔</li>
<li>盆子</li>
<li>筒子</li>
<li>菜刀</li>
</ul>
</li>
<li>影视作品
<ul class="nav2">
<li>动漫</li>
<li>电影</li>
<li>电视剧</li>
<li>戏剧</li>
</ul>
</li>
</ul>
</body>
</html>
最后的结果展示: