Layui分页样式必须通过CSS覆盖.layui-laypage系列类实现,不可用table.render()的page或theme参数修改;需用!important提升权重,确保CSS在layui.all.js之后加载,并精准作用于.layui-laypage a、.layui-laypage-curr .layui-laypage-em等选择器。

直接改 CSS 选择器,别碰 layui 源文件
layui 分页的样式由 .layui-laypage 系列类控制,不是通过 theme 或表格配置项改的。你改 table.render() 的 page 参数或写 theme: 'red' 都没用——这些参数只影响逻辑或极简配色,不接管按钮边框、背景、圆角等细节。
必须用 CSS 覆盖,且要加 !important(layui 内联样式优先级高);同时确保你的 CSS 文件在 layui.all.js 之后加载,否则规则被覆盖。
-
.layui-laypage a控制所有按钮文字颜色、边框、hover 效果 -
.layui-laypage-curr是当前页容器,但高亮背景实际在它的子元素.layui-laypage-em上 -
.layui-laypage-skip input是跳转输入框,原生宽度太窄,需手动设width - 避免用泛选择器如
button或a,会污染全局
当前页高亮和跳转框对齐要单独处理
百度风格分页的「当前页蓝底白字」和「跳至第 X 页」右侧对齐,laypage 不自动支持,得手写 CSS 补全。
- 当前页背景:重写
.layui-laypage-curr .layui-laypage-em { background: #009688 !important; color: #fff !important; } - 跳转区域对齐:给
.layui-laypage-skip加display: inline-flex; align-items: center; - 输入框宽度不够:加
.layui-laypage-skip input { width: 50px; padding: 0 6px; } - 如果用了
groups: 5,页码超出时出现省略号(…),它由.layui-laypage-em渲染,样式需一并覆盖
按钮文本含 HTML 时小心双重转义
想把「上一页」换成带 icon 的 <i class="layui-icon"></i> 上一页,不能直接写进 prev 参数——后端返回的 JSON 若经 json_encode() 处理,前端再传给 laypage.render() 会被二次转义,图标变成纯文本。
- 推荐用 Unicode 字符替代:如
prev: '‹ 上一页'、next: '下一页 ›' - 若必须用 HTML,确保后端未开启自动转义,或前端先
decodeURIComponent()解码 -
first和last支持<strong>,但需确认页面没启用 XSS 过滤(比如某些 CMS 的安全插件会拦截)
自定义样式后翻页无反应?检查 jump 回调是否漏了 reload
很多人只顾改样式,结果点击页码没反应——不是 CSS 问题,是逻辑断了。laypage 只负责渲染 DOM,不自动触发数据加载。
- 必须在
jump回调里手动执行数据重载,例如table.reload('id', { where: { page: obj.curr, limit: obj.limit } }) - 如果是纯 laypage(非 table 关联),也要在这里发 AJAX 请求,然后用新数据调
table.reload()或手动更新列表 - 漏掉
!first判断会导致初始化时重复请求一次 - 服务端分页时,
count必须来自接口返回值,不能硬编码;否则末页无法禁用、跳转越界不拦截
jump 里操作 .layui-laypage-curr 下的新节点,得确认它已经渲染完成——有时得套一层 setTimeout 或监听 layui.table.on('done(id)') 才稳。


















