最稳定的做法是修改 :root 的 font-size,因 Bootstrap 5 表格广泛使用 rem 单位,可同步缩放字体、行高及间距;需确保 :root 样式在 bootstrap.min.css 后引入,并验证 computed font-size 是否生效。

直接改 .bootstrap-table 或 .table 的 font-size 最快,但容易被框架样式覆盖或导致行高/间距错乱;真正稳定的做法是控制根字号或用 CSS 变量统一干预。
改 :root font-size 让表格字体自动缩放
Bootstrap 5 表格(包括 bootstrap-table)大量使用 rem 单位,th、td、.pagination 等内部元素的 font-size 都基于 :root 的 font-size 推导。改这里,表格内容、分页、工具栏文字会同步变化,且 line-height 和 margin 也自动适配。
-
:root必须在bootstrap.min.css之后引入,否则会被覆盖 - 别写
html { font-size: 18px; }—— Bootstrap 5 不认这个,.btn、.table都不会变 - 验证是否生效:打开 DevTools → Elements → 找任意
td→ Computed → 查看font-size是否已按比例更新(比如设:root { font-size: 18px; }后,原1rem应显示为18px) - 如果用了 Sass 编译,确保你没只改了
$font-size-base却忘了同步更新:root块,否则编译输出的 CSS 里仍是默认16px
覆盖 .bootstrap-table 的 CSS 样式需注意优先级
如果你用的是 wenzhixin 的 bootstrap-table 插件,它的默认样式来自 bootstrap-table.css,而该文件本身又依赖 Bootstrap 的基础 .table 类。直接写 .table { font-size: 14px; } 很可能无效,因为插件内部有更具体的规则,比如 .bootstrap-table .fixed-table-body .table tbody td。
- 推荐用带命名空间的选择器:
.bootstrap-table .table > thead > tr > th, .bootstrap-table .table > tbody > tr > td - 必须加
!important才能压过插件内联计算的样式(尤其是启用了height或scrollY时) - 只调
font-size不够:表格行高会塌,要同步设line-height(建议用无单位值,如line-height: 1.4;) - 小字号下边框易糊,可额外加
border-collapse: separate;和border-spacing: 0;保清晰
用 fs-* 工具类局部调整表格内文字
Bootstrap 5 自带的 fs-* 类(如 fs-5)只改 font-size,不碰 line-height 或 padding,适合微调某列或操作按钮文字,但不能用于整个表格——它不作用于 th/td 的默认继承链,除非你显式加到每个单元格上。
- 给某列内容统一变小:
<td class="fs-6">2026-10-26</td> - 响应式场景(如小屏压缩列宽后文字换行难读):
<td class="fs-sm-5 fs-md-4">...</td> - 注意:这些类对
.bootstrap-table的工具栏按钮(如.buttons-column)无效,那些按钮走的是独立组件样式,得单独加.btn-sm或重写.bootstrap-table .btn - 别指望
fs-*能缩放表头排序图标(.bootstrap-table .th-inner .sort),那个 SVG 图标尺寸是硬编码的,得另加transform: scale()
自定义 $table-font-size(仅限 Sass 项目)
如果你用 Sass 编译 Bootstrap,并引入了 bootstrap-table 的 SCSS 源码(而非 CDN 的 CSS),就可以从变量层重定义表格字号,这是最干净的方案,避免所有 CSS 层叠冲突。
- 在
@import "bootstrap"前,先声明:$table-font-size: 0.875rem;(即14px) - 若同时用 RFS 响应式字号,得包一层:
$table-font-size: font-size(14px); - 别漏掉
$table-sm-font-size和$table-head-font-size,否则.table-sm或表头会和正文不协调 - 纯 CSS 引入项目(比如只用
bootstrap-table.min.css)无法走这条路,Sass 变量不会生效
最常被忽略的是:改了字体大小后,.bootstrap-table 的 height 或 data-height 值没同步调,导致滚动条错位或底部留白;还有就是表头固定(sticky-header)时,th 和 td 行高不一致,视觉上错行——这些都得靠实际渲染后检查 computed styles 来定位,不能只看代码。


















