Layui分页按钮边框由.layui-laypage a控制,需覆盖该选择器及.layui-laypage-curr、.layui-laypage em等类的border和background,并加!important;分页栏整体外边框需同时处理.layui-table-page、.layui-table-box及其伪元素,reload时应使用全局CSS确保生效。

layui分页按钮的边框由 .layui-laypage a 控制
分页组件的边框不是表格边框,而是独立的按钮样式。Layui 默认给所有分页按钮(包括「上一页」「下一页」「数字页码」)加了 border,来源是 .layui-laypage a 这个选择器。它和表格的 .layui-table 无关,改错地方就白忙活。
常见错误是去动 table.render() 的配置项,或者试图用 skin: 'noborder'——这个参数根本不存在于分页组件中。
- 真正要覆盖的是:
.layui-laypage a、.layui-laypage .layui-laypage-curr(当前页)、.layui-laypage em(总页数等文字容器) - 必须重置
border和background,否则只清边框会留下背景色块,显得更突兀 - 如果用了
theme参数(比如theme: '#1890ff'),Layui 会自动生成内联样式,优先级高,得加!important
示例 CSS:
.layui-laypage a {
border: none !important;
background: transparent !important;
}
.layui-laypage .layui-laypage-curr {
border: none !important;
background: transparent !important;
box-shadow: none !important;
}
.layui-laypage em {
border: none !important;
}
去掉分页栏整体外边框和底部分割线
分页栏容器本身(.layui-table-page)可能带有一圈外边框或底部横线,尤其在表格启用分页后,Layui 有时会通过伪元素或父容器加 border-bottom。这不是按钮边框,而是布局层的装饰线。
这类线容易被忽略,因为开发者工具里不一定直接标出来源,常表现为分页区域上方或下方一条细线。
- 检查
.layui-table-page是否有border或border-bottom - 检查
.layui-table-box是否设置了border-bottom(表格容器常带此样式) - 某些主题皮肤(如
skin: 'row')会在分页区顶部加::before横线,需额外清除:.layui-table-page::before { display: none !important; }
稳妥写法:
.layui-table-page,
.layui-table-box {
border-bottom: none !important;
}
.layui-table-page::before {
display: none !important;
}
为什么加了 CSS 还有残留细线
不是 CSS 没生效,而是没打中真实渲染节点。Layui 分页 DOM 结构较深,且不同版本插入时机不同,容易漏掉以下几处:
-
.layui-laypage-skip input:跳转输入框自带border,若 layout 里保留了'skip',就得单独处理 -
.layui-laypage > .layui-laypage-count:总条数文案容器,部分版本会加border-left - 固定列表格(
fixed: 'left')的分页栏可能被包裹在.layui-table-fixed-r里,需额外作用域 - layer 弹窗内渲染的分页,父级
.layui-layer-content可能透出边框,需向上追溯
建议打开浏览器开发者工具,鼠标悬停在细线上,看 computed styles 里 border 来自哪个规则,再针对性覆盖。
reload 后边框又回来了怎么办
每次 table.reload() 都会重新生成整个分页 DOM,包括内联样式。你之前写的 CSS 如果依赖全局 class 或加载顺序,很可能被新注入的样式覆盖。
- 别把去边框 CSS 写在
done回调里——它只在首次渲染触发,reload不走done(除非显式传done) - 全局 CSS 是最稳的,但必须确保它在 Layui 自带 CSS 之后加载(比如放在
<head>最底部,或用@import延后) - 如果项目用构建工具,确保你的样式文件打包顺序在 layui.css 之后
- 极端情况可加延迟重置:
setTimeout(() => $('.layui-laypage a').css('border', 'none'), 10),但属兜底手段
真正麻烦的不是第一次去边框,而是 reload、tab 切换、弹窗二次打开这些场景下,DOM 生命周期不一致导致样式失效——盯住节点生成时机,比堆 CSS 更重要。


















