直接修改 CSS 即可定制 Layui 导航选中态,核心是覆盖 .layui-this > a 样式并加 !important;侧边菜单需额外处理 .layui-nav-tree .layui-this > a;注意 hover 干扰、动态切换时类名同步及初始化预设。
直接改 css 就行,不需要动 js 或重写渲染逻辑。layui 导航的选中态由 .layui-this 类控制,它默认加在当前激活的 <li> 上,你只需要覆盖它的子元素(通常是 a)背景或文字颜色。
找到并覆盖 .layui-this > a 的样式
Layui 官方未提供配置项来修改导航高亮色,所有视觉定制都靠 CSS。默认样式里 .layui-this > a 没有强背景色,所以看起来只是文字加粗或下划线——你要的颜色得自己加。
- 必须用
!important,否则被 layui 内置样式覆盖 - 推荐作用于
.layui-this > a,而不是.layui-this本身,避免影响边框、内边距等其他布局 - 如果导航用了图标或 padding,记得同步调
color和background-color,别只改一个导致文字看不见
示例:
.layui-nav-item .layui-this > a {
background-color: #2F9688 !important;
color: #fff !important;
}
菜单展开时子项也需高亮?加 .layui-this 到 dd 里
侧边菜单(.layui-nav-tree)里,点击父级展开后,子项高亮仍靠 .layui-this,但它会加在 <dd> 上,不是 <li>。所以如果你发现子菜单没变色,大概率是 CSS 选择器没覆盖到 dd。
- 检查 DOM:点开菜单后看目标
<dd>是否有layui-this类 - 补一条规则:
.layui-nav-tree .layui-this > a { ... }或.layui-nav-tree .layui-this > a, .layui-nav-tree .layui-this > cite { ... }(如果文字在cite里) - 不要漏掉 hover 状态干扰:如果同时设置了
:hover,可能掩盖.layui-this效果,临时注释掉试试
动态切换菜单时高亮不更新?检查类是否被手动移除
有些项目会用 JS 手动操作 .layui-this,比如点击后 $(prev).removeClass('layui-this') 再给新项加,但漏了触发 layui 的内部状态同步,导致后续折叠/展开异常。
- 优先用 layui 自带的
element.tabChange()或element.on('nav(XX)', callback)来响应导航切换,它们会自动处理类名 - 如果必须手动操作,确保每次只存在一个
.layui-this,且加在正确的层级(li或dd) - 刷新页面后高亮丢失?说明没在初始化时根据 URL 或权限数据预设
.layui-this—— 这部分得你自己写逻辑,在element.init()后执行
最常被忽略的是:不同导航结构(顶部横栏 vs 左侧树形)对应的选择器路径不同,.layui-this 的父容器可能是 .layui-nav、.layui-nav-tree 或自定义 class,不加前缀容易全局污染或完全不生效。


















