th 必须单独写选择器并显式设置样式,因其默认加粗居中、权重与 td 不同;需设 background-color 保障 sticky 表头可读性;font-size 和 padding 应比 td 略大以增强视觉引导;border-collapse: collapse 必须在 table 上声明,确保 th 边框独立渲染。

th 标签必须单独写选择器,不能靠继承
很多人试图用 table td 和 table th 一起设样式,结果发现 th 没生效或被覆盖。这是因为浏览器对 th 有默认加粗+居中行为,且其 specificity(权重)和渲染优先级与 td 不同。
真正有效的做法是:显式声明 th 的样式规则,并确保它不被更宽泛的选择器(比如 table * { ... })意外覆盖。
- 写
th { font-weight: normal; text-align: left; }才能取消默认加粗和居中 - 避免用
td, th { ... }统一设背景色——th需要更高对比度,td通常要留白呼吸感 - 如果用了
border-collapse: collapse,th的border-bottom很容易被里第一行的td边框盖住,建议给th单独加border-bottom: 2px solid #333background-color 是 sticky 表头的刚需
当用
position: sticky固定表头时,滚动过程中th会悬停在内容上方。如果不设background-color,下方tr的背景色会透上来,造成闪烁或文字难读。-
th必须有明确的background-color,哪怕只是#fff - 别依赖父容器背景——
sticky元素脱离普通文档流后,父背景不自动继承 - 若表格整体有斑马纹(
tbody tr:nth-child(even)),th的背景色必须与之形成足够对比,否则视觉层级混乱
font-size 和 padding 要比 td 大 1–2px
表头承担“锚点”作用,需要更强的视觉引导力。直接复用
td的字号和内边距会让表头存在感弱、点击区域小,尤其在移动端。-
th的font-size建议比td大1px或2px(如td { font-size: 14px; }→th { font-size: 16px; }) -
th的padding推荐比td多4px垂直空间(如td { padding: 8px 12px; }→th { padding: 12px 12px; }) - 慎用
line-height单独调高——它可能撑开tr高度,导致sticky区域错位
border-collapse 影响 th 边框渲染逻辑
没加
border-collapse: collapse时,th的边框会和相邻td边框叠加,看起来粗两倍、不对齐,甚至让sticky表头底部出现断层。- 必须在
table选择器第一行写border-collapse: collapse,不能靠后代选择器覆盖 - 设完
collapse后,th的border才真正“属于”自己,不会被td干扰 - 如果要用虚线或点线边框,优先设在
th上,而不是整个table——td通常不需要边框,靠间距和背景区分更清爽
真正卡住人的不是不会写
th { color: red; },而是没意识到th在sticky、border-collapse、nth-child这些上下文里会表现异常——这些细节不验证,样式再好看也经不起滚动和缩放。 -
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











