Layui select 选中后高亮边框生效于 .layui-form-select.layui-form-selected 类,通过 box-shadow 和 border-color 实现;修改需在 layui.css 后加载,并用 !important 覆盖。

layui select 选中后高亮边框在哪生效
Layui 的 select 渲染后,原生 <select> 被隐藏,真正显示的是 .layui-form-select 容器和其内部的 .layui-select-title。所谓“选中后的高亮边框”,实际是点击展开下拉时,.layui-form-select 上临时添加的 layui-form-selected 类所触发的 box-shadow 和 border-color 效果。
直接改 .layui-form-select:focus 无效?原因在这
因为 Layui 并不依赖原生 focus 状态,而是用 JS 手动切换类名。你写 .layui-form-select:focus { border-color: #ff6b35 !important; } 完全不起作用——真实 DOM 里那个 select 元素始终是 hidden 的,根本不会触发 focus。
- 真正起作用的是
.layui-form-select.layui-form-selected这个组合类 - 默认样式定义在
layui.css中,类似:.layui-form-select.layui-form-selected { box-shadow: 0 0 0 2px #009688; - 必须用相同或更高优先级的选择器覆盖,且必须加
!important
一行 CSS 改掉所有 select 的选中边框色
把这段代码加到你项目 CSS 文件末尾(确保在 layui.css 之后加载):
.layui-form-select.layui-form-selected {
box-shadow: 0 0 0 2px #ff6b35 !important;
border-color: #ff6b35 !important;
}
- 只改
box-shadow就够了,Layui 默认用它模拟“高亮边框”,border-color是备选(部分皮肤会用) - 如果只想改某一个 select,给它外层容器加 class,比如
<div class="my-select-wrap"><select></select></div>,然后写:.my-select-wrap .layui-form-select.layui-form-selected - 别碰
.layui-select-title的border,它控制的是常态下的顶部边框,和“选中高亮”无关
为什么改了还是蓝色?检查这三点
常见失效不是代码错,而是环境卡点:
- CSS 加载顺序不对:确认你的自定义样式在
layui.css之后引入,否则被覆盖 - 用了
lay-filter但没调form.render('select'):动态插入的 select 必须手动渲染,否则.layui-form-selected类根本不会被添加 - 页面有 scoped style 或 Shadow DOM(如 Vue 单文件组件):CSS 作用域隔离导致规则不生效,得用
:deep()或全局样式
边框颜色这事本身简单,难在识别真正生效的那个 class 组合和加载时机——漏掉任何一个,就白改。


















