Layui 本身无导航栏组件,所谓“子菜单白边阴影”实为混用 Element Plus、Bootstrap 或 layer 弹层所致;应先确认来源,再分别清除 .el-menu--popup 边框阴影、.dropdown-menu 样式或 layer 层蒙版与背景。

layui 本身没有内置“导航栏”组件,你提到的“导航栏子菜单弹出时的白色边框阴影”,实际是使用了 第三方 UI 库(如 Element Plus 或 Bootstrap) 的下拉菜单,或误将 layer.open 弹层样式套用到了导航上。Layui 官方仅提供 layer(弹窗)、laydate、form 等模块,不包含导航菜单组件。
确认你用的是哪个库的导航
先区分清楚来源,再对症处理:
- 如果是 Element Plus 的
<el-menu></el-menu>或<el-dropdown></el-dropdown>,白色边框通常来自.el-menu-submenu__title或下拉面板的border和box-shadow - 如果是 Bootstrap(含 4/5)的 navbar + dropdown,边框和阴影多由
.dropdown-menu的border、box-shadow和background-color共同造成 - 如果误用了
layer.open模拟导航下拉——那它根本不是导航栏,而是弹层,需按 layer 规则处理圆角、阴影、背景
Element Plus 导航子菜单去白边与阴影
常见于 <el-submenu></el-submenu> 展开后的下拉面板(.el-popper 或 .el-menu--popup)。关键样式节点:
-
.el-popper .el-popper__arrow:默认带白色箭头和边框,可设display: none -
.el-menu--popup或.el-popper .el-menu:清除border: 1px solid #e4e7ed和box-shadow: 0 2px 12px 0 rgba(0,0,0,0.1) - 若用深色主题,还需重设文字颜色与 hover 背景,避免透明后内容不可读
示例 CSS:
.el-menu--popup { border: none !important; box-shadow: none !important; }.el-popper .el-popper__arrow { display: none; }
Bootstrap 导航下拉菜单去白边阴影
核心是覆盖 .dropdown-menu 默认样式:
- 删边框:
border: none !important; - 去阴影:
box-shadow: none !important; - 调背景(如需半透):
background-color: rgba(255,255,255,0.95) !important;(避免用 0,否则 hover 无反馈) - 确保文字在浅底上可读:
color: #333 !important;
若你真在用 layui layer 模拟导航下拉
这属于非标准用法,但若已这么实现,需同步处理三层结构:
-
.layui-layer:清background-color、box-shadow、设border-radius -
.layui-layer-content:设background: transparent,并确保内部 HTML 无自带白底 - 禁用遮罩(
shade: 0),否则灰色蒙层会干扰“透明”效果 - 推荐用
skin: 'no-border'配合全局 CSS 精准控制,避免污染其他 layer 实例











