css表格文字粗细通过font-weight属性设置,需配合选择器(如th、td)、字体字重支持及样式优先级生效;th默认加粗但易被覆盖,显式声明更可靠,td默认normal(400),数值须为100-900整百数且字体文件需提供对应字重。

font-weight 在表格里不是“写了就生效”,它得配合选择器、字体支持和样式优先级一起工作。直接写 td { font-weight: 700; } 很可能没反应——这不是你代码写错了,而是下面几个环节卡住了。
怎么给 th 和 td 分别设不同粗细
表格表头通常要更醒目,数据单元格保持克制,这是最常见需求。关键不是堆属性,而是选对元素、避开默认样式干扰:
-
th默认浏览器会加粗(font-weight: bold),但这是用户代理样式,容易被其他规则覆盖;显式写th { font-weight: 600; }更可靠 -
td默认是normal(即400),但某些 UI 框架(如 Bootstrap)会全局重置为font-weight: 400或normal,导致你写的700被压制 - 想只加粗某列?用属性选择器:
td[data-type="price"] { font-weight: 800; },比硬加 class 更灵活 - 避免用
!important—— 它能临时压住冲突,但会让后续维护变困难;优先检查 DevTools 中 Styles 面板里font-weight是否被划掉
为什么写了 font-weight: 900 却还是看起来和 bold 一样
数值再大,字体文件不提供对应字重,浏览器就只能降级。这不是 bug,是字体本身的限制:
- 系统字体(如 Windows 的微软雅黑、macOS 的 -apple-system)普遍只含
400和700两级,800、900实际无效 - Google Fonts 必须显式加载字重:链接里漏了
wght@900,比如只写?family=Inter,那font-weight: 900就不会渲染 - 自定义字体用
@font-face时,font-weight值必须和 .woff2 文件内嵌的元数据完全一致,差一点(比如声明800但文件实际是700)就会匹配失败 - 运行时验证可用:
document.fonts.check('900 Inter'),但得等document.fonts.load()完成后再调,否则返回false
font-weight 在 a 标签或内联元素里失效怎么办
表格里常把链接塞进 td,结果加粗不起作用——问题不在表格,而在链接本身:
-
a标签默认font-weight: 400,但很多 CSS 重置库(如 normalize.css)会把它设为normal,而normal和400在多数场景下等价,但某些字体下视觉差异明显 - 不要写
font-weight: "bold"—— 引号是语法错误,浏览器直接忽略整条声明 - 慎用
bolder:如果父容器是400,bolder变成700;但如果父已经是700,而字体没有800,它就卡在700不动 - 非整百值如
650全部无效,浏览器静默 fallback 到最近的整百数(通常是600或700)
用 CSS 变量统一管理表格文字粗细
如果你的项目里表格样式多、要频繁调整,硬编码数值很快会失控。变量不是炫技,是降低出错概率的实际手段:
- 定义语义化变量:
:root { --fw-table-header: 600; --fw-table-body: 400; --fw-table-highlight: 800; } - 应用时清晰可读:
th { font-weight: var(--fw-table-header); }、.urgent-cell { font-weight: var(--fw-table-highlight); } - 变量值仍用标准档位(
400/500/600/700),不用523这类非标数——浏览器不认 - 变量不能绕过字体支持问题:就算
--fw-table-highlight设成900,字体没这档,照样降级
font-weight 就不会再“失联”了。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











