前言
该效果很常见,网上的代码都非常的乱,样式改起来非常难受。
本文提供 “最简洁” 的解决方案与干净整洁的代码,一眼看过去就知道改哪里,
配合 Vue.js 项目非常合适,如下图所示:
完整源码
您建立一个干净的 *.html 文件,或者直接选择性复制即可。
<section class="content"> <!-- 有菜单 --> <div class="items"> <div class="menu"> <span>有菜单</span> <div> <div class="drop">选项A</div> <div class="drop">选项B</div> <div class="drop">选项C</div> </div> </div> </div> <!-- END --> <!-- 无下级 --> <div class="items"> <div class="menu"> <span>无菜单</span> <div></div> </div> </div> <!-- END --></section>
/* 最外层 */.content {
display: flex;
flex-direction: row;
}/* END *//* 每个菜单的样式(宽度这里调,子菜单宽度都听这个) */.items {
width: 130px;
color: #fff;
}/* END *//* 菜单与鼠标移入 */.menu{
width: 100%;
height: 45px;
background: red;
line-height: 45px;
text-align: center;
position: relative;
overflow: hidden;
}.menu:hover{
overflow: visible;
background: black;
color: white;
z-index: 999;
cursor: pointer;
}/* END *//* 下拉菜单与鼠标移入 */.drop{
background: red;
text-align: center;
width: 100%;
height: 45px;
line-height: 45px;
overflow: hidden;
}.drop:hover{
background: black;
cursor: pointer;
}/* END */