table 的 font-size 不会继承到 th 和 td,必须显式设置;推荐用 table th, table td 统一声明;优先选 px 或 rem(依项目而定),避免 em 和内联样式;排查失效需检查语义标签、特异性及 viewport 设置。

table、th、td 的 font-size 必须分开设置
浏览器默认不会继承 table 的 font-size 到 th 和 td,哪怕你写了 table { font-size: 16px; },表头和单元格仍可能沿用 UA 样式(比如 th 默认加粗且字号略大)。所以不能只设一层。
- 最稳妥的做法是显式声明:对
th和td单独写font-size - 如果想统一控制,建议用通配选择器:
table th, table td { font-size: 14px; } - 避免只写
table * { font-size: 14px; }——它会命中tr、tbody等无文本的容器,无效且可能干扰布局
用 rem 还是 px?优先看维护场景
如果你的项目已用 rem 做全局字体缩放体系(比如根元素 html { font-size: 16px; }),那表格内也该延续 1.125rem 这类写法,方便后期一键调整整站字号。但如果是独立小页面或 CMS 输出的静态表格,直接用 px 更可控、不易被父级继承干扰。
-
px:数值确定,调试直观,适合固定尺寸需求(如后台数据报表) -
rem:依赖根字号,适合响应式站点,但要注意某些 CMS 或 iframe 场景下html的font-size可能被重置 - 慎用
em:它会逐层继承计算,td套在tr里再套tbody,容易偏离预期
内联 style 能快速验证,但别留在生产环境
调试时直接给 <th style="font-size: 18px;"> 加样式确实快,但上线前必须收归 CSS。原因不只是“不优雅”——更实际的是:内联样式优先级最高,后续用 class 覆盖要加 <code>!important,而多个 !important 会让样式调试变成猜谜。
- 临时验证可以,上线前务必移走
- 若必须动态控制(比如用户自定义字号),用 JS 操作
className或style.fontSize,而非拼接内联字符串 - 注意:某些富文本编辑器导出的 HTML 会自带内联
font-size,需在渲染前清洗或用 CSS 强制覆盖
font-size 生效但文字没变大?先查这三处
常见假性失效:明明写了 font-size: 18px,预览却没变化。大概率不是代码写错,而是被其他规则压制了。
- 检查是否被
small、sub、sup等语义标签包裹——它们有浏览器内置font-size(如small是0.83em) - 看是否有更高特异性的选择器,比如
.data-table td比td优先级高,而你只改了后者 - 确认没触发移动端自动缩放:iOS Safari 在窄屏下可能放大文本,此时加
meta viewport的text-size-adjust: none才能真实反映 CSS 设置
表格字体大小这件事,表面是调一个属性,实际是理清继承链、特异性、单位语义和渲染上下文——漏掉任意一环,都可能让 font-size 像没写一样。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











