将网页字体转换为base64
我想推迟字体加载在我的网站启发由Smashing杂志的延期字体加载逻辑。
这主要是将字体转换为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 Fonts(或任何其他来源)的TTF文件编码为base64格式并使用它,以便结果与原始文件相同?
在Font Squirrel Expert选项中,确保将'TrueType Hinting'选项设置为'Keep Existing'。 其他选项都会导致TrueType指令(提示)被修改,这反过来会影响字体的渲染。
或者 ,如果您对从GWF直接呈现字体感到满意,则可以采取该文件并自己进行base64编码。 在OS X或Linux中,在Terminal / shell中使用内置的base64命令:
$ base64 myfont.ttf > fontbase64.txt
对于Windows,您需要下载一个程序以base64编码(有几个免费/开源工具可用)。 复制该文件的内容,然后在CSS中使用:
@font-face {
font-family: 'myfont';
src: url(data:font/truetype;charset=utf-8;base64,<<copied base64 string>>) format('truetype');
font-weight: normal;
font-style: normal;
}
(请注意,您可能需要对各种@ font-face信息进行一些调整才能匹配您的特定字体数据;这只是一个示例模板)
链接地址: http://www.djcxy.com/p/65059.html