自从使用Cufon带来麻烦之后,我就冒险不使用外部字体资源,但是最近,我一直在寻找替代方法来加载字体,以查看是否有更好的方法。更好的方法有一种突如其来的出现方式。
那里有很多新方法,每种方法似乎都有变化。我应该使用typekit吗?或Google webfonts(使用js或css)?我应该继续使用本地加载的字体(例如fontsquirrel.com生成的方法)吗?
我将在下面列出一些测试方法,这些方法似乎是最受人们欢迎的方法,但是真的值得一试使用webfont吗?似乎它将承担较高的资源负载(http请求),而文件格式类型较少(兼容性较差)等。但是在大多数情况下,文件似乎是异步且高效地加载的。
- 这只是情况和需求的问题吗?如果是这样,它们是什么?
- 这些方法之间是否存在巨大差异?
- 有没有我没有列出的更好的方法?
- 专业人士的表现/缺点是什么?看?依赖?兼容性?
我确实在这里寻找最佳实践,性能是一件大事,但可伸缩性和易用性也是如此。更不用说,外观和感觉。
Google CSS
- 仅使用外部样式表
- 仅使用最小的兼容文件类型
- 可以使用
@import
或<link>
获取styleshee(@font-face
)的内容,并将其直接放入您自己的样式表中。
检测结果
78ms load of html 36ms load of css
Google JS方法
- 用于
webfont.js
加载样式表 - 仅使用最小的兼容文件类型
:root
用类追加元素- 将脚本添加到头部。
检测结果
171ms load of html 176ms load of js 32ms load of css
Typekit方法
:root
用类追加元素。- 可以使用
*.js
摘要或外部加载的文件*.js
文件 - 使用
data:font/opentype
代替字体文件。 - 将脚本添加到头部
- 将嵌入式CSS添加到头部
将外部样式表添加到头部
您可以从typekit.com轻松添加/删除/调整字体和目标选择器
检测结果
169ms load of html 213ms load of js 31ms load of css 3ms load of data:font/
…&字体松鼠法
@font-face{
font-weight:400;
font-style:normal;
font-family:open_sanslight;
src:url(../font/opensans-light-webfont.eot);
src:url(../font/opensans-light-webfont.eot?#iefix) format(embedded-opentype),
url(../font/opensans-light-webfont.woff) format(woff),
url(../font/opensans-light-webfont.ttf) format(truetype),
url(../font/opensans-light-webfont.svg#open_sanslight) format(svg)
}
…或使用data:font方法…
@font-face {
font-family: 'open_sanslight';
src: url('opensans-light-webfont-f.eot');
}
@font-face {
font-family: 'open_sanslight';
src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAF4sABMAAAAArXQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcZLn0KkqwK44Jq866WBSpzpsNY2IyGAhoJFBbYjuxmyns5sNa4NwldcJ7eh3Uy5gQkURIlqWzONe3HcLsDX1x/+jifDXvbzgTBjopZElndil3hJkERJkmRJkVRJk3TJkEzJkmzOc4HLXOEOF7nEX/*thisisnotafullencodingjustanexample*/bZwUnK4yS3JlTx2Sr4USKEUSbHVX9fcGNBs4fqgw+GoNHU7lKr36Eqn0lCWt6pHFpWaUlc6lS6loSxRlirLlP/uuU01dVfT7L6gPxyqraluCpgj3WtqeC1V4VBDW2N4K1r1esw/IupKp9L1FwlqnuIAAAB42j3NvQ7BUBjG8R5tTz/0u2UjNTTESYQbMGmXLiISbeI6zBYjbuWtye7CeMJxtuf3LP8ne1+IXbWa7G3TMXZru4qLZkJRW1O2wzi3I+Li2Gik5yXpYkNGXj70YU98YQLGHxwwXxIWwO8SNmAdJBzAXku4gFNI9AF38QMjTwZ9vN6yJzq9OoEB6I8VQzDYK0ZguFKMwWiumIDxTDEFk6liBqaF4gDMFFvKxAfOxFUGAAABUxSL9gAA) format('woff'),
url('opensans-light-webfont-f.ttf') format('truetype'),
url('opensans-light-webfont-f.svg#open_sanslight') format('svg');
font-weight: normal;
font-style: normal;
}
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300' rel='stylesheet'>
Georgian
webfonts。我正在使用字体松鼠方法,并且我也想看到一个很好的答案。
@font-face
声明的非常不错的文章,也许您可以找到有用的信息。paulirish.com/2009/bulletproof-font-face-implementation-syntax