信息发布→ 登录 注册 退出

HTML5如何控制文字字重变化_fontweight数值对应粗细说明【技巧】

发布时间:2026-01-07

点击量:
font-weight合法值为100–900(步长100)及关键词normal/bold等,但实际生效取决于字体是否提供对应字重;可变字体支持连续值如372、689,需wght轴且兼容性有限。

font-weight 支持哪些数值?不是所有数字都有效

HTML/CSS 中 font-weight 的合法值分两类:关键词(如 normalbold)和无单位数字(100900,以 100 为步长)。但关键点在于:并非所有字体都实现了全部 9 档字重。比如多数系统默认的 serifsans-serif 字体只提供 400(等价于 normal)和 700(等价于 bold)两档,font-weight: 600 可能被浏览器降级为 400 或模拟加粗(faking),视觉上没变化。

如何确认当前字体是否支持某档字重?

靠查文档或实测。Web 字体(如 Google Fonts)通常在页面上明确标注支持的 font-weight 值;系统字体则需验证:

  • font-family: "Helvetica Neue", Arial, sans-serif; 时,300500600 多数无效
  • 使用 @font-face 引入的自定义字体,必须确保每个 font-weight 对应一个独立的字体文件(如 Roboto-Light.woff2 对应 font-weight: 300
  • 检查浏览器开发者工具的「Computed」面板,看最终生效的 font-weight 值——若显示为 400 却写了 600,说明未命中

font-weight: bolder / lighter 是相对计算,容易误判

bolderlighter 不是固定值,而是相对于父元素当前字重“向上/向下跳一档”。但这个“档”由浏览器按预设映射表决定,不可控。例如:

body { font-weight: 400; }
h1 { font-weight: bolder; } /* 可能变成 700 */
p { font-weight: bolder; } /* 父为 400 → 仍可能变成 700,而非 500 */

更麻烦的是,如果父元素已是 900bolder 也不会超出;同理 lighter100 时无效。实际项目中建议直接写数字值,避免歧义。

现代方案:用 font-variation-settings 精确控制可变字体

如果你用的是支持 OpenType Font Variations 的可变字体(如 InterIBM Plex Sans),font-weight 数值可真正连续生效(如 372689),前提是:

  • 字体文件本身包含 wght 轴(可通过 font-variation-settings: 'wght' 450; 验证)
  • CSS 中声明 font-weight: 100–999(注意:可变字体允许突破 900 上限)
  • 不混用 font-weightfont-variation-settings,后者会覆盖前者

可变字体让字重控制从“有无”变成“多少”,但兼容性需留意:IE 完全不支持,iOS Safari 13.4+ 才稳定支持 wght 轴。

最常被忽略的一点:即使写了 font-weight: 600,若字体文件缺失对应字重,浏览器不会报错,也不会警告——它就安静地回退到最近可用值。调试时得盯紧「Computed」面板里的真实取值,而不是代码里写的那个数字。

标签:# 关键词  # 相对于  # 可通过  # 而非  # 报错  # 不支持  # 自定义  # 已是  # 写了  # 的是  # css  # google  # ios  # safari  # 工具  # 浏览器  # html5  # go  # html  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!