我想推迟我的网站上的字体加载,受到Smashing Magazine延迟字体加载逻辑的启发。
其中主要部分是将字体转换为base64并准备好您的CSS文件。 我迄今为止的步骤:
- 在Google Web Fonts上选择字体并下载它们。
- 使用Font Squirrel Webfont Generator将下载的TTF文件转换为带有嵌入WOFF字体的CSS文件(专家选项 -> CSS -> Base64编码)。
- 异步加载CSS文件(这里不重要)。
Open Sans Bold的CSS片段:
@font-face {
font-family: 'Open Sans';
src: url(data:application/x-font-woff;charset=utf-8;base64,<base64_encoded>) format('woff');
font-weight: 700;
font-style: normal;
}
问题在于,转换后的字体看起来非常不同。看看Open Sans Bold:
特别注意重音符号偏离和绝对可怕的字母a
。其他字体系列和变体也明显不同(大小和形状扭曲等)。
所以问题是:如何正确地将来自Google Web字体(或其他来源)的TTF文件编码为base64格式,并以使结果与原始文件相同的方式使用它?