You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

@font-face字体权重遭用户代理覆盖,如何让H1保持默认权重?

让H1保持自定义字体默认权重的解决办法

问题原因

H1标签的浏览器默认样式(用户代理样式)自带font-weight: bold(对应数值权重700),而你只声明了该自定义字体400权重的版本。浏览器找不到匹配700权重的字体文件时,要么会替换成系统字体,要么会自动模拟加粗效果,导致自定义字体的样式被覆盖。

解决方案

方案1:直接重置H1的字体权重

最直接的方式是给H1标签设置明确的字体权重,覆盖浏览器默认样式:

/* 确保H1使用自定义字体,并重置权重为400 */
h1 {
  font-family: 'XXX', sans-serif;
  font-weight: 400;
}

方案2:为bold权重映射自定义字体文件

如果希望项目中所有使用该字体的bold样式(不止H1)都用400权重的字体文件,而非浏览器模拟加粗,可以扩展@font-face规则,将700权重(对应bold)指向同一个字体文件:

@font-face {
  font-family: 'XXX';
  font-weight: 400;
  font-style: normal;
  src: url('你的S3存储桶字体文件路径') format('woff2'); /* 补充字体文件路径,推荐用woff2格式 */
}

/* 映射bold权重到同一个字体文件 */
@font-face {
  font-family: 'XXX';
  font-weight: 700;
  font-style: normal;
  src: url('你的S3存储桶字体文件路径') format('woff2');
}

设置后,任何使用font-weight: bold或font-weight:700且字体为XXX的元素,都会加载你定义的400权重字体,不会触发浏览器的默认替代行为。

注意点

  • 你的原始@font-face规则缺少src属性,必须添加该属性指定S3上的字体文件路径,否则浏览器无法加载自定义字体。
  • 优先使用woff2格式的字体,它压缩率更高,加载速度更快。

内容的提问来源于stack exchange,提问作者Diego Leitão

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 12:57:17