默认加粗居中但不可依赖,因属用户代理样式而非规范强制;必须显式声明font-weight: bold和text-align: center,并确保语义正确置于thead中以保障可访问性。

TH标签默认就是表头,但不是所有浏览器都渲染成加粗居中
th 元素语义上表示表格表头单元格,浏览器通常默认应用 font-weight: bold 和 text-align: center,但这属于用户代理样式(user agent stylesheet),不是规范强制要求。实际项目中常遇到:在某些旧版 Safari、自定义 CSS 重置后,或使用 CSS 框架(如 Bootstrap)时,th 失去加粗或居中效果。
所以不能只依赖默认行为。稳妥做法是显式声明:
- 始终为
th设置font-weight: bold(避免被normal覆盖) - 显式写
text-align: center,尤其当父级table或thead有全局居左样式时 - 注意
th默认 display 是table-cell,不要误设为block导致布局错乱
用CSS统一控制TH样式比内联style更可靠
内联 style="font-weight:bold;text-align:center;" 虽然能起作用,但重复写、难维护、无法响应式适配。推荐在样式表中统一定义:
th {
font-weight: bold;
text-align: center;
padding: 8px 12px;
}
这样还能顺便统一 padding,避免和 td 高度不一致。如果表格需要支持 RTL(如阿拉伯语),可补充 direction: ltr 或用 text-align: start 替代 center 以兼顾逻辑对齐。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
TH必须放在THEAD里才语义正确,但不是必须的
很多人以为 th 只能出现在 thead 中——其实不是。th 可以出现在 tbody 或 tfoot 里(比如某行数据本身是分类标题)。但语义上,只有 thead > tr > th 才被屏幕阅读器识别为“列标题”。如果只是想视觉加粗居中,th 放哪儿都行;但如果要考虑可访问性(a11y),必须确保列头在 thead 内,且与对应列的 td 有明确的 scope 或 id/headers 关联。
- 简单表格:直接用
<thead><tr> <th>姓名</th> <th>年龄</th> </tr></thead> - 复杂表格(多级表头):需用
colspan/rowspan+scope="col"或scope="row" - 避免把
th当“加粗居中工具”滥用——该用td+ CSS 的地方别硬套th,会误导辅助技术
加粗居中失效的常见排查点
如果写了 th 却没加粗居中,先看这几处:
- 是否被更高优先级 CSS 覆盖?检查 DevTools 中
font-weight是否显示 strikethrough,或被!important干扰 - 是否父容器设置了
text-align: left且未在th上重置?text-align是可继承属性 - 是否用了 CSS 重置库(如 normalize.css)?它可能清除了
th的默认加粗,需手动补回 - 是否在
th内嵌了div或span?它们默认display: inline,会忽略text-align: center—— 此时要给内联元素设display: inline-block或用flex布局
真正麻烦的不是怎么写,而是什么时候不该用 th——语义错位比样式错位更难调试。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










