确保文本在网页字体加载期间保持可见
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
字体通常是加载缓慢的大型文件。有些浏览器会在字体加载之前隐藏文字,
导致不可见文本 (FOIT) 闪烁。
Lighthouse 字体显示审核如何失败
Lighthouse 会标记可能闪烁不可见文本的任何字体网址:
如何避免显示不可见文本
font-display
API 用于指明字体在 font-face
样式中使用时的显示方式。如果自定义字体尚未准备就绪,以下 font-display
值会指示浏览器使用系统字体:
CSS 示例
@font-face {
font-family: 'Pacifico';
font-style: normal;
font-weight: 400;
src: local('Pacifico Regular'), local('Pacifico-Regular'),
url(https://fonts.gstatic.com/s/pacifico/v12/FwZY7-Qmy14u9lezJ-6H6MmBp0u-.woff2)
format('woff2');
font-display: swap;
}
Google Fonts 示例
将 &display=swap
/&display=optional
/&display=fallback
参数添加到 Google Fonts 网址的末尾:
<link
href="https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap"
rel="stylesheet"
/>
如何避免由延迟字体导致的布局偏移
暂时显示系统字体会将 FOIT 替换为闪烁的无样式文本 (FOUT)。这样可以更快地呈现内容,从而改进 FCP 和 LCP。
但在自定义字体替换临时系统字体时,FOIT 和 FOUT 都会对 CLS 产生相同的影响。
可以通过将预加载与 font-display: optional
结合使用来缓解字体加载对 CLS 的影响。
不过,过度使用预加载可能会对加载指标产生负面影响。我们建议您进行 A/B 测试,以确保预加载字体不会引入任何性能回归问题。
针对特定堆栈的指南
Drupal
在主题中定义自定义字体时指定 @font-display
。
Magento
在定义自定义字体时指定 @font-display
。
资源
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-04-02。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2024-04-02\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-04-02。"],[],[]]