Layui分页栏样式由.layui-laypage及其子类控制,table.render()中page或theme参数无效;需用高权重CSS精准覆盖.layui-laypage a、.layui-laypage-curr等选择器,并注意加载顺序与作用域问题。
分页栏样式不归 table 配置管,得直接改 CSS 类
修改 table.render() 里的 page 或 theme 参数完全无效,因为 layui 分页是独立组件,dom 结构固定为 <div class="layui-laypage">,样式由 .layui-laypage 及其子类控制。你翻文档找 page 配置项,只会浪费时间。
精准覆盖 .layui-laypage 的关键选择器和属性
必须用高权重规则覆盖,且只作用于分页区域,避免污染全局:
-
.layui-laypage a、.layui-laypage .layui-laypage-prev、.layui-laypage .layui-laypage-next:控制所有按钮背景、文字、边框 -
.layui-laypage .layui-laypage-curr:当前页容器(带圆角背景的整块) -
.layui-laypage .layui-laypage-curr .layui-laypage-em:当前页内那个小蓝底白字的数字 - 文字粗细统一加
font-weight: 600或700,别只设 color 或 background
示例(放在页面末尾或自定义 CSS 文件中):
.layui-laypage a,
.layui-laypage .layui-laypage-prev,
.layui-laypage .layui-laypage-next {
background-color: #4a9ff5 !important;
color: #fff !important;
font-weight: 700 !important;
border: 1px solid #4a9ff5 !important;
}
.layui-laypage .layui-laypage-curr {
background-color: #4a9ff5 !important;
color: #fff !important;
font-weight: 700 !important;
}
.layui-laypage .layui-laypage-curr .layui-laypage-em {
background-color: #4a9ff5 !important;
}
样式不生效?八成是加载顺序或作用域问题
常见失效原因和对应解法:
- Layui 的
layui.all.js或laydate.css等资源在你的自定义 CSS 之后才加载 → 把样式代码放到</body>前,且确保在layui.use调用之后执行 - 用了 iframe 或动态内容加载,分页被多次渲染 → 在表格的
done回调里重新注入样式,或用setTimeout延迟执行 - Vue 项目中启用了 scoped 样式 → 必须用
:deep(.layui-laypage)包裹,否则样式无法穿透 - 写了
a { font-weight: bold }这种宽泛选择器 → 它会被 Layui 内联样式覆盖,且污染其他链接
别碰 layui.css 源文件,也别信“全局改 body 字体”这种方案
直接修改 layui/css/layui.css 里的 .layui-laypage 规则,上线后一升级就还原;而靠 body { font-weight: 600 } 这类兜底写法,会导致弹窗按钮、导航菜单全变粗,根本不可控。真正安全的做法是:只锁定 .layui-laypage 下的元素,用 !important 确保优先级,把颜色和粗细写死在选择器里——看起来土,但一次写对,三年不修。


















