字体没加载完,文字要么空白(FOIT)要么闪一下(FOUT)。font-display:swap 与预加载能缓解这个。

示例代码

<link rel="preload" href="/fonts/main.woff2" as="font" type="font/woff2" crossorigin>
<style>
@font-face{
  font-family:Main;
  src:url(/fonts/main.woff2) format("woff2");
  font-display:swap;
}
</style>

要点速览

  • font-display:swap 用回退字体先顶着,避免白屏。
  • 预加载关键字体,缩短切换等待。
  • 只引用到的字重,别把整套字库拉下来。
字体加载的两难 FOIT/FOUT,用 swap + 预加载取平衡。