返回

文渊阁亮了“瘦身”美容术

前端

啊,这连字体都要减肥的世道啊!

设计师大佬一脸委屈地看着菠萝:“可是这个字体好看啊。”哎没办法,这眼神分分钟让人觉得自己在犯罪。那就只能搞个font-face了,可是就10个阿拉伯数字要77K,这这这!不行不行,减下肥。

运行index.js,得到精简的字体文件。

unicode-range的作用是可以让特定字符的字形渲染出来,这个方案把除阿拉伯数字之外的字形全部精简掉了,下载的文件只有12K。方案二把所有字形的字符数都精简到了最小,而且为了兼容GLYF工具,在filefont.ttf里只保留了需要的字形,在预览文件preview.ttf中保留了所有字形,同时用CSS构建了渲染,展示精简字体的效果,最终生成一个font-face。经过实际测试,在实际应用场景中,预览字形无需上传至服务器,可以在客户端直接解析展示。方案二最终生成了2个ttf字体文件,一个3K,一个2K,下载文件只有5K。

当然,这只是简单举了个例子,现实场景中一般字体文件会更大,可以通过不同的优化方案,最终减少的体积肯定远远不止几百K!

现在主流的字体精简工具都支持GLYF格式的字体文件,GLYF是一种专门为字体精简而生的格式,具有体积小、速度快、开源免费等优点。

使用GLYF工具精简字体,可以根据需要,选择性地移除不需要的字形,还可以调整字体的字形大小,从而达到减小字体文件体积的目的。

GLYF工具的使用方法非常简单,只需要将字体文件拖拽到工具界面中,然后选择要移除的字形,最后点击“导出”按钮即可。

需要注意的是,精简字体文件后,可能会导致某些字形无法正常显示。因此,在精简字体文件之前,需要仔细考虑哪些字形是必要的,哪些字形是可以移除的。

例如,如果你要制作一个只包含英文和数字的网站,那么你就可以移除所有非英文和数字的字形。这样可以大大减小字体文件体积,而不会对网站的显示效果造成影响。

除此之外,还可以通过使用CSS来精简字体文件。CSS是一种样式表语言,可以用来控制网页的样式,包括字体。

在CSS中,可以使用font-face属性来加载字体文件。font-face属性可以指定字体文件的路径,还可以指定字体文件的格式和字重。

例如,以下代码可以加载一个名为“Arial”的字体文件:

@font-face {
  font-family: 'Arial';
  src: url('Arial.ttf');
}

加载字体文件后,就可以在网页中使用该字体了。例如,以下代码将网页中的所有文本设置为Arial字体:

body {
  font-family: Arial;
}

通过使用CSS来精简字体文件,可以减少HTTP请求的数量,从而提高网页的加载速度。

精简字体文件是一种非常有效的优化网页性能的方法。通过精简字体文件,可以减小字体文件体积,提高网页的加载速度,从而改善用户体验。