HTML5如何让文字变粗体_fontweight属性取值与效果对比【介绍】

13次阅读

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

HTML5如何让文字变粗体_fontweight属性取值与效果对比【介绍】

font-weight 属性能直接让文字变粗吗?

能,但不是所有取值都有效——font-weight 本身不“画粗”,而是向浏览器传达「希望使用字体家族中哪个字重(weight)的字形」。最终是否加粗,取决于当前 font-family 是否实际提供了对应字重的字体文件。

常见 font-weight 取值的实际效果差异

不同数值或关键字触发的行为不同,尤其在系统字体和 Web 字体下表现不一:

  • normal(等价于 400):默认字重,多数字体都有
  • bold(等价于 700):最常用;若字体无 700 字重,浏览器可能模拟加粗(faking),出现模糊或锯齿
  • 600800 等中间值:仅当字体真实包含该字重时才生效;否则回退到最近可用字重(如 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)通常只提供 400600/700,极少支持 800+

font-weight: bolder 是个陷阱

它不表示“比 normal 更粗”,而表示“比父元素的字重大一级”。如果父元素是 400bolder 可能变成 700;但如果父元素已经是 700,它可能变成 900 —— 前提是字体真有 900。更糟的是,部分浏览器对 bolder 的映射规则不一致。

  • 避免嵌套使用:文本 行为难预测
  • 改用明确数值:font-weight: 700bolder 更可控
  • css 自定义属性可辅助管理:--fw-bold: 700;,然后用 font-weight: var(--fw-bold)

字重不是开关,是字体设计的一部分;想让文字变粗,先确认字体有没有那个“档位”。

text=ZqhQzanResources