WordPress使用自定义字体如果要达到快速打开网站的要求,可以从以下几个方面进行改进:
- 使用Webfont字体(.woff2格式)
- 将字体托管在自己的服务器上并设置缓存
- 只使用一款自定义字体以及少量的字体样式
- 设置preload预加载
- 使用无衬线字体 (sans-serif) 更易于阅读
- 使用swap优先显示本地默认字体
- 使用系统字体作为备选
1 提高字体加载性能的几种方法
1.1 使用Webfont字体(.woff2格式)
Webfont 是基于 TTF & OTF 等字体格式的封装和优化压缩,所以体积更小,加载速度更快,对于设备浏览器的兼容性更好,它的字体格式为 .woff2 和 .woff
WOFF (Web Open Font Format) 是专为 Web 开发而设计的字体格式。woff2 是 woff 的下一个版本,比 woff 有更好的压缩效果,速度更快,但兼容性方面目前还在推进中,所以它的兼容性没有 woff 好。
这里建议直接使用 woff2 一种格式即可,如果字体没有提供 woff2,则使用 woff,不必为了效果和兼容性加载多个格式文件,使用这种格式基本已经覆盖了网站大部分类型的用户,即超过 80% 的用户,剩下的 20% 使用其他的兼容性措施弥补即可。
CSS 的加载方式如下所示:
@font-face {
font-family: MyWebfont;
src: url('font/MyWebfont.woff2') format('woff2');
}
1.2 将字体托管在自己的服务器上并设置缓存
网站在设计完成后,字体修改的可能性极低,我们可以将字体托管到自己的服务器上,然后设置缓存时间为半年甚至一年。
1.3 只使用一款自定义字体及少量的字体样式
自定义字体的加载往往会对网页性能造成影响,原因是在加载字体前,需要先从服务器上将字体下载下来,然后浏览器拿着下载下来的字体进行页面的渲染。
所以为了不影响网站的打开速度,整站只建议有且只有一款自定义字体。每多一个字体加载,都会对页面加载速度造成一次冲击。比如,你在网站上同时加载了 Open Sans 和 Roboto 这两款字体,这种设置没有什么意义,不仅影响页面加载性能,同时还破坏网站字体的规范统一。
这里指的一款字体,不包含字体的不同样式,如粗体、斜体等。一般情况下,我们只建议加载两种样式,一种是常规的基础字体 (即正文字体),一种是加粗的字体 (即标题) 即可。基于用户体验和设计效果的平衡进行取舍,没有太大的必要加载多个样式字体。
目前字体 font-weight
根据粗细程度分别有以下几种,但大部分字体都只有其中的几种粗细形式:
- 100 – Thin
- 200 – Extra Light
- 300 – Light
- 400 – Regular
- 500 – Medium
- 600 – Semi Bold
- 700 – Bold
- 800 – Extra Bold
- 900 – Black
CSS 的设置如下:
@font-face {
font-family: MyWebFont;
src: url('font/MyWebfont-Regular.woff2') format('woff2');
font-weight: 400;
}
@font-face {
font-family: MyWebfont;
src: url('font/MyWebfont-Bold.woff2') format('woff2');
font-weight: 700;
}
1.4 设置 preload 预加载
为了使用网页加载最优化,我们可以设置字体资源加载的优先级。使用自定义字体时,应告知浏览器资源加载的优先级,使用相应的 rel="preload"
来预加载你最重要的资源 (不要滥用),比如 image, css, jQuery, font 文件,使用这个属性,需同步配合使用 as 或者 type ,浏览器会根据你设置的资源类型来判断哪个资源优先级更高,preload 使用 as="style"
样式属性将获得加载的最高优先级。
使用方法是在 前面添加 preload 属性,代码如下所示:
<link rel="preload" href="font/MyWebFont.woff2" as="font" crossorigin>
1.5 使用无衬线字体 (sans-serif) 更易于阅读
在当前主流的一些设备浏览器中,无衬线字体比衬线字体更易于阅读,在我留意过的所有大型网站 (e.g. Google, YouTube, Apple, Microsoft…) 均会默认整站为无衬线字体,即使用 sans-serif
属性。
font-family: sans-serif;
1.6 使用 swap 优先显示本地默认字体
我们知道,要显示出自定义的字体,需要先从服务器下载下来,然后浏览器进行页面的渲染,这个期间,如果不添加 swap 的属性,页面加载时将明显感知到有几秒空白时间,然后字体一下蹦出来,在网络不好的情况下,页面空白将持续更长时间,极度影响用户体验。
CSS的写法如下:
font-display: swap;
1.7 使用系统字体做为备选
我们都知道,font-family
通常都会指定几种字体,原因是其他字体都属于备选项,当网页无法成功加载第一个字体时,那么会顺延到第二个字体的加载。
那么我们该如何选择备选字体呢,是否随意指定一款字体都能做为备选?当然不是,我们设置它是有原因的,是为了解决兼容性的问题,同时,字体的阅读体验还不能产生太大影响。
使用系统字体的好处在于网页可直接调取用户电脑本地字体,这大大减少很多网页加载时间和渲染阻塞,且兼容性往往很好。
运用系统字体的方法非常简单,直接在 CSS 上调取下面的参数即可:
- system-ui 使用用户当前系统的默认字体
- -apple-system 是 system-ui 的兼容性写法,仅作用 macOS 和 iOS 系统
- BlinkMacSystemFont 也是 system-ui 的兼容性写法,仅作用 macOS 系统
CSS的写法如下:
font-family: system-ui, -apple-system, BlinkMacSystemFont;
2 网站字体加载最佳实践方式
综上所示,了解了这些情况后,就是整体融合并运用的问题,下面将用Open Sans字体举例说明。
2.1 下载woff2字体
网站:https://gwfh.mranftl.com/fonts
在该网站上搜索Open Sans,字符集只选择latin,style只选择regular
然后滑到最下方,下载字体文件,解压,上传到网站的字体目录下。
2.2 设置字体预加载
在</head>
标签之前添加以下代码,使用get_template_directory_uri()
获取主题根目录
<link rel="preload" href="<?php echo get_template_directory_uri() .'/fonts/OpenSans-400.woff2'; ?>" as="font" crossorigin>
<link rel="preload" href="<?php echo get_template_directory_uri() .'/fonts/OpenSans-700.woff2'; ?>" as="font" crossorigin>
2.3 加载字体样式
设置预加载后,则需要在CSS中加载字体样式,可以直接使用https://gwfh.mranftl.com/fonts 上给出的CSS代码,只不过需要注意修改字体的路径,需要与网站中字体文件的路径一致
/* open-sans-regular - latin */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: url('./fonts/open-sans-v35-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
如果字体名称包含空格,则需要添加一个双引号 “ ” 或单引号 ‘ ’,但你会发现实际上哪一种都有人在使用,无论是 Arial, ‘Arial’, “Arial” 都是等效的,仅 CSS3 定义的通用字体系列 (如 sans-serif) 必须写成无引号。
W3C 提到,为了避免转译的错误,用引号引用除连字符 (-) 以外的包含空格、数字、标点符号的字体系列名称。
2.4 设置font-family,使用字体
在CSS文件中添加以下代码
body {font-family:'Open Sans',system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;}
如果你希望网页支持表情,则需在sans-serif后面添加如下字体系列名称:
- Apple Color Emoji
- Segoe UI Emoji
- Segoe UI Symbol
通过上面的步骤我们就可以正确的在我们的WordPress网站上使用自定义字体,并且尽量加载打开网站的速度。
参考链接
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:WordPress – 网站加载自定义字体的最佳方式
原文链接:https://www.stubbornhuang.com/2727/
发布于:2023年07月17日 13:51:16
修改于:2023年07月17日 13:54:15
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
50