使用CSS3实现折叠导航是一个很常见的需求,这里我们介绍一种简单的方法。 首先,在HTML中,我们需要建立一个包含导航菜单的ul列表,并且为其添加一个类名,比如"navlist"。...
使用CSS3实现折叠导航是一个很常见的需求,这里我们介绍一种简单的方法。
首先,在HTML中,我们需要建立一个包含导航菜单的ul列表,并且为其添加一个类名,比如"nav-list"。每个菜单项也需要添加一个类名"nav-item",并为每个二级菜单添加一个类名"sub-menu"。
然后,在CSS中,我们需要隐藏二级菜单以及对应的箭头,以及设置默认状态下的样式。我们可以通过display:none隐藏二级菜单,通过transform:rotate(180deg)旋转箭头。我们可以在"nav-list"类下加入下面的代码实现默认状态下的样式:
.nav-list .sub-menu{
display:none;
}
<br>
.nav-list .nav-item > a:after{
content:'\25bc';
transform:rotate(0deg);
}
<br>
.nav-list .opened .nav-item > a:after{
transform:rotate(180deg);
} .nav-list .nav-checkbox{
display:none;
}
<br>
.nav-list .nav-checkbox:checked ~ .sub-menu{
display:block;
}
<br>
.nav-list .nav-item > a:after{
content:'\25bc';
transform:rotate(0deg);
}
<br>
.nav-list .nav-checkbox:checked ~ .nav-item > a:after{
transform:rotate(180deg);
}
<br>
.nav-list .nav-checkbox:checked ~ .opened{
margin-top:0;
}
<br>
.nav-list .nav-item > a{
display:block;
}
<br>
.nav-list .sub-menu .nav-item > a{
padding-left:30px;
}
<br>
.nav-list .sub-menu .nav-item > a:after{
display:none;
}
<br>
<ul class="nav-list">
<li class="nav-item">
<label for="item-1">菜单项1</label>
<input type="checkbox" id="item-1" class="nav-checkbox">
<ul class="sub-menu">
<li class="nav-item">
<a href="#">子菜单项1</a>
</li>
<li class="nav-item">
<a href="#">子菜单项2</a>
</li>
</ul>
</li>
<li class="nav-item">
<label for="item-2">菜单项2</label>
<input type="checkbox" id="item-2" class="nav-checkbox">
<ul class="sub-menu">
<li class="nav-item">
<a href="#">子菜单项1</a>
</li>
<li class="nav-item">
<a href="#">子菜单项2</a>
</li>
</ul>
</li>
</ul>