使用 font-display: swap 可解决自定义字体被系统字体替代的问题,确保文本立即显示并平滑切换。
页面中使用 @font-face 加载自定义字体时,有时会发现字体被系统默认字体替代,导致样式异常。这通常是因为浏览器在等待自定义字体加载期间,为避免内容不可见(FOIT,Flash of Invisible Text),临时用系统字体渲染文本。可以通过 font-display 控制这一行为,优化字体加载体验。
现代浏览器默认对 @font-face 字体使用 font-display: block 或类似策略,意味着:
在 @font-face 规则中设置 font-display,可控制字体加载期间的渲染行为。常用取值包括:
对于大多数网页,推荐使用 swap 策略,保证内容快速可见:
@font-face {
font-family: 'CustomFont';
src: url('custom-font.woff2') format('woff2'),
url('custom-font.woff') format('woff');
font-display: swap;
}
这样设置后:
为提升整体字体加载体验,还可结合以下措施:
font-weight 和 font-style 明确声明变体,避免浏览器伪造preload 提前加载关键字体content-visibility 或懒加载非首屏文本基本上就这些。合理设置
font-display 能有效防止自定义字体被系统字体“永久”替代,同时提升页面可用性。