>本文是Siteground合作伙伴关系的贡献。 感谢您支持我们的赞助商。 67%的网站现在使用自定义的Web字体。 但是,这种广泛的采用提出了绩效和用户体验挑战。 本文探讨了Web字体实施中的常见陷阱,并提供解决方案,包括既定的解决方法和未来的标准。
密钥点:
在67%的网站上使用的自定义Web字体,由于其大小和加载时间,可能会对性能和用户体验产生负面影响,可能会导致无形文本(FOIT)。 优化自定义字体涉及使用浏览器兼容格式(优先级WOFF2),仅加载必要的样式和限制字符集的字体最小化字体。
>对抗FOIT,考虑使用系统字体,使用Web字体加载程序进行异步加载或利用CSS字体加载API进行颗粒状控制。font-display
规则已启用了广泛采用,但字体文件的固有大小会影响站点性能。 有效的字体加载至关重要。定义它们并依赖默认浏览器行为 - 是次优的。 浏览器通常会延迟字体加载,直到CSS解析完成。 此外,正如Zach Leatherman的亮点一样,字体下载需要特定条件:
的HTML元素
@font-face
在Webkit和blink浏览器中,该元素不得为空。
此延迟下载通常会导致FOIT:文本隐形性,直到字体负载为止。 FOIT的浏览器处理各不相同:
> 几种策略最小化字体文件大小:
使用少量精心选择的字体。
<code class="language-css">@font-face { font-family: 'Open Sans'; src: local('Open Sans'), local('OpenSans'), url('fonts/open-sans.woff2') format('woff2'), url('fonts/open-sans.woff') format('woff'); }</code>>仅加载必要的样式:
>
>子集字符集:
地址foit:
避免自定义字体(系统字体后备):
Web字体加载程序:此JavaScript库异步加载字体,显示后备直到自定义字体可用。
<code class="language-css">body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; }</code>
未来:CSS
> CSS 属性提供了对字体加载和后备行为的颗粒状控制。 值包括,
,。 虽然浏览器支持仍然有限,但它代表了Web字体加载的未来。>
font-display
缓解福特:
font-display
当上述方法解决foit时,可能仍会发生fout。 最大程度地减少其影响涉及使用Monica Dinculescu的字体样式匹配器等工具将后备字体的X-Height和Width与自定义字体的尺寸匹配。auto
block
结论:swap
fallback
有效的Web字体管理需要优化文件大小并控制字体加载行为。 这里讨论的方法以及提供的资源提供了有效的解决方案,以增强网站性能和用户体验。
optional
>(原始输入的常见问题解答部分已经写得很好,不需要对此重写进行重大修改。) )原始FAQ部分保留了。
以上是优化性能的Web字体:最新的状态的详细内容。更多信息请关注PHP中文网其他相关文章!