前言
该效果很常见,网上的代码都非常的乱,样式改起来非常难受。
本文提供 “最简洁” 的解决方案与干净整洁的代码,一眼看过去就知道改哪里,
配合 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 */