能,但需字体实际提供对应字重;font-weight 仅声明期望字重,浏览器按可用字形降级或模拟加粗,无900字重时设900无效。

font-weight 属性能直接让文字变粗吗?
能,但不是所有取值都有效——font-weight 本身不“画粗”,而是向浏览器传达「希望使用字体家族中哪个字重(weight)的字形」。最终是否加粗,取决于当前 font-family 是否实际提供了对应字重的字体文件。
常见 font-weight 取值的实际效果差异
不同数值或关键字触发的行为不同,尤其在系统字体和 Web 字体下表现不一:
-
normal(等价于400):默认字重,多数字体都有 -
bold(等价于700):最常用;若字体无 700 字重,浏览器可能模拟加粗(faking),出现模糊或锯齿 -
600、800等中间值:仅当字体真实包含该字重时才生效;否则回退到最近可用字重(如 600 → 500 或 700) -
bolder/lighter:相对计算,依赖父元素字重;易造成不可预测的层级跳跃,不推荐用于精确控制
为什么设了 font-weight: 900 却没变粗?
这是最常被忽略的关键点:字体本身没提供 900 字重,浏览器不会“强行加粗”,而是静默降级。验证方式很简单:
body {
font-family: "Inter", -apple-system, sans-serif;
font-weight: 900;
}
上面这段代码只有在 "Inter" 字体已通过 @font-face 加载了 font-weight: 900 的woff2文件时才真正生效。否则,浏览器会用它能找到的最接近的字重(比如 800 或 700),甚至 fallback 到系统字体的 bold。
立即学习“前端免费学习笔记(深入)”;
- 查字体支持:打开浏览器开发者工具 → Elements → 计算样式(Computed)→ 展开
font-weight,看实际解析值 - Web 字体必须显式声明字重:
@font-face { font-weight: 900; src: url(...); } - 系统字体(如
system-ui)通常只提供400和600/700,极少支持800+
font-weight: bolder 是个陷阱
它不表示“比 normal 更粗”,而表示“比父元素的字重大一级”。如果父元素是 400,bolder 可能变成 700;但如果父元素已经是 700,它可能变成 900 —— 前提是字体真有 900。更糟的是,部分浏览器对 bolder 的映射规则不一致。
- 避免嵌套使用:
文本行为难预测 - 改用明确数值:
font-weight: 700比bolder更可控 - CSS 自定义属性可辅助管理:
--fw-bold: 700;,然后用font-weight: var(--fw-bold)
字重不是开关,是字体设计的一部分;想让文字变粗,先确认字体有没有那个“档位”。











