分享个人 Full-Stack JavaScript 项目开发经验
本文将介绍如何缩小网络字体包大小及优化其加载过程。
使用fonttools转换格式。它是一个依赖于 python 的工具。(若转换时候报错,需要根据提示安装对应依赖的库。)
(1)安装:
pip install fonttools
(2)转换例子:
pyftsubset example.ttf --layout-features="" --unicodes=U+0020-007E,U+4E00-9FA5 --flavor=woff2 --output-file=example.woff2
注意到 --unicodes=U+0020-007E,U+4E00-9FA5,其中 U+0020-007E 为 ascii 码范围,U+4E00-9FA5 为基本汉字范围(大约 2 万字)。
使用font-spider导出。
Github 中有一个这样的常用汉字频率表。
css 示例:
@font-face {
font-family: 'example-font';
src: url('./example.woff2') format('woff2');
font-weight: normal;
font-style: normal;
/* 使用 swap 模式,为字体提供一个非常小的阻塞周期。 */
font-display: swap;
}