#精品
避免字体加载过程中出现不可见的文本

2025-01-12 0 992

字体文件通常是比较大的文件,需要一段时间才能加载。为了解决这个问题,某些浏览器会隐藏文本,直到字体加载完成为止(“不可见文本”)。如果要优化性能,则要避免使用“看不见的文字闪烁”,并立即使用系统字体(“无样式文字”)向用户显示内容。

本文一共介绍两种方式,第一种方法非常简单,但不能获得所有浏览器的支持;第二种方法稍微麻烦一些,但兼容所有浏览器。

方法一、使用font-display

示例:

@font-face { font-family: Helvetica; }

将以上改成:

@font-face { font-family: Helvetica; font-display: swap; }

font-display是用于指定字体显示策略的API。swap告诉浏览器使用此字体的文本应立即使用系统字体显示。自定义字体加载好后,再将系统字体替换掉。

如果浏览器不支持font-display,则浏览器将继续遵循其默认行为来加载字体。

以下为主流浏览器对font-display的支持情况:

Edge 使用系统字体,直到字体准备就绪再换掉字体。
Chrome 隐藏文字最多3秒, 如果文本仍未准备好,使用系统字体,直到自定义字体准备好后,再换掉字体。
Firefox 与Chrome相同。
Safari 隐藏文本,直到自定义字体准备就绪。

方法二、使用FontFaceObserver

只需多做一些工作,就可以在所有浏览器上均实现正常工作。

此方法包括三个部分:

  • 请勿在初始页面加载时使用自定义字体。这样可以确保浏览器立即使用系统字体显示文本。
  • 自动检测何时加载自定义字体。可以通过FontFaceObserver库来完成,仅需几行JavaScript代码即可。
  • 更新页面样式以使用自定义字体。

FontFaceObserver的使用方法,请详见:https://github.com/bramstein/fontfaceobserver

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在!
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。联系邮箱:3496947425@qq.com

813站长大咖 精品文章 避免字体加载过程中出现不可见的文本 https://www.813master.cn/1585.html

WordPress极客一枚!无干货,不分享!

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务