应直接修改.layui-laypage相关css类(如.layui-laypage a、.layui-laypage-curr等)来定制分页样式,而非配置table.render()的page选项;因layui使用内联样式,覆盖时需加!important;隐藏分页栏应使用display: none,而非设置page: false。

直接改 .layui-laypage 相关类,别碰 page 配置项
分页样式错乱,90% 是因为试图用 table.render() 的 page 选项(比如加 theme 或 prevText)去控制外观——这完全无效。Layui 的分页 DOM 结构和样式是独立渲染的,page 配置只影响行为逻辑(如是否显示跳转、每页条数),不参与样式生成。
真正起作用的是这些 CSS 类:
-
.layui-laypage:外层容器 -
.layui-laypage a:所有页码按钮(含“上一页”“下一页”) -
.layui-laypage .layui-laypage-curr:当前页高亮按钮 -
.layui-laypage em:显示“共 x 条”的文本节点(注意:它不是span,不能用 class 定位) -
.layui-laypage .layui-laypage-spr:省略号(…)
必须用这些选择器覆盖,否则改了等于没改。
加 !important 不是妥协,是必须
Layui 渲染时会往每个 a 标签写内联 style,比如 style="background-color: #009688;"。普通 CSS 规则根本压不住它,DevTools 里能看到你的样式被划掉。
所以关键属性必须加 !important,但只加需要覆盖的那几个:
- 只对
color、background-color、border、padding等视觉属性加!important - 不要整条规则都加,比如
.layui-laypage a { display: inline-block !important; }就没必要 - 如果用了 Vue 的
scoped,得用:deep(.layui-laypage a)穿透,否则样式不生效
居中、右对齐或自定义文案位置要单独处理
默认分页是左对齐的,想居中?不能只靠 text-align: center —— 因为 .layui-laypage 内部是 inline-block 布局,父容器得有足够宽度且自身可居中。
更稳妥的做法是定位控制:
- 居中:给
.layui-table-page加text-align: center(适用于单表格);或多表格时用$("[lay-id='xxx'] .layui-table-page").css("text-align", "center") - 右对齐“共 x 条”:显式声明
layout: ['count', 'prev', 'page', 'next'],再用.layui-laypage-count { float: right; margin: 0 15px; line-height: 30px; } - 避免文字挤在按钮中间:
float后务必设line-height匹配默认按钮高度(通常是 28–30px)
IE 或低版本浏览器下 flex 导致错位怎么办
Layui 2.x 默认用 display: flex 排列页码,IE10/11 不支持或支持不全,会出现按钮堆叠、间距消失、省略号错位等问题。
解决方式不是硬 hack,而是降级:
- 初始化表格时加
skin: 'line'或skin: 'row',避免触发 flex 表格皮肤(虽然这是 table 的 skin,但它会影响页面整体布局上下文) - 加全局样式强制回退:
.layui-laypage { display: inline-block !important; }或.layui-laypage > * { display: inline-block !important; } - 删掉可能干扰的自定义
white-space或flex相关规则,尤其别写.layui-laypage { white-space: nowrap; }—— 它会让页码横向溢出容器
复杂点在于:不同浏览器对 inline-block 的 vertical-align 和 margin 处理不一致,建议用 Chrome 调完后,立刻切到 IE DevTools 验证真实渲染结果,而不是只信预览。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











