fw-semibold 对应 font-weight: 600,介于 fw-normal(400)和 fw-bold(700)之间;与 fw-bold 的区别在于数值档位不同,非主观“稍弱”,且高度依赖字体是否真实提供 600 字重。
fw-semibold 在 bootstrap 5.3+ 中对应 font-weight: 600,但仅当字体文件真实提供 600 字重时才有效;多数项目漏配该字重,导致它渲染成 400 或被算法加粗。
fw-semibold 是什么值,和 fw-bold 有什么区别
Bootstrap 5.3 起新增 fw-semibold,它编译为 font-weight: 600,介于 fw-normal(400)和 fw-bold(700)之间。不是“比 bold 稍弱”,而是独立数值档位。常见误用是把它当作“视觉上比 bold 柔和一点”的样式开关——实际它是明确的 600,和字体是否支持强绑定。
-
fw-light→ 300 -
fw-normal→ 400 -
fw-semibold→ 600 -
fw-bold→ 700
如果你的字体只含 400 和 700 两个字重(比如只加载了 Inter Regular 和 Inter Bold),那 fw-semibold 会退化为浏览器模拟的 600,小字号下边缘发虚、字形变宽。
Google Fonts 引入时必须显式声明 wght@600
用 Google Fonts 时,&family=Inter 默认只拉取 400,fw-semibold 不会自动生效。必须在 URL 中补全字重范围:
https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap
注意几点:
- 不要写
@600却漏掉@400或@700—— 浏览器可能 fallback 到系统字体,导致fw-normal失效 - 如果项目只用
fw-semibold和fw-bold,仍建议保留 400,否则body默认文字可能异常 - 本地部署字体时,检查每个
@font-face的font-weight值是否与文件实际字重一致(例如 Inter-SemiBold.ttf 必须声明font-weight: 600,不能写成 700)
和 fw-bolder 混用会出问题
fw-bolder 是相对类,依赖父级当前 font-weight 计算结果。如果父元素用了 fw-semibold(600),子元素再加 fw-bolder,浏览器会尝试渲染为 700 或 900 —— 但多数免费字体不提供 900,结果就是卡在 700,或回退到 600 甚至 400。
- 避免嵌套:
<p class="fw-semibold"><span class="fw-bolder">文本</span></p> - 更安全的写法是直接指定:
<span class="fw-bold">文本</span> -
fw-bolder适合动态场景(如主题切换时统一提亮所有标题),但需确保字体字重覆盖完整
检查是否真生效的最快方式
别只看 DevTools 的 Styles 面板里有没有 font-weight: 600,重点看 Computed 面板里的 font-family 实际加载的是哪个文件,再对照该字体的字重列表。
- 在 Chrome DevTools → Elements → 右侧 Computed → 找
font-family,点开查看最终解析出的字体名(如"Inter SemiBold", "Inter", sans-serif) - 去 Google Fonts 页面或字体厂商文档查这个字体名是否真包含 600 字重
- 临时加一行测试:
<p class="fw-semibold">A</p> <p class="fw-bold">A</p>,肉眼对比字母粗细差异是否自然;若两者几乎一样,大概率 600 未加载成功
最常被忽略的一点:fw-semibold 不是“可有可无的视觉优化”,它是排版层级中承上启下的关键档位——标题用 bold,正文强调用-semibold,小字标注用 light,缺一不可。但前提是,你得让字体资源跟上 CSS 声明。


















