CSS @font-face属性详解
@font-face
是 CSS3 中的一个模块,他主要是把自己定义的 Web 字体嵌入到你的网页中。
本文介绍了该模块的一些使用方法。
语法规则
首先我们一起来看看@font-face 的语法规则:
@font-face {
font-family: <YourWebFontName>;
src: <source> [<format>][,<source> [<format>]]*;
[font-weight: <weight>];
[font-style: <style>];
}
font-family: <YourWebFontName>
:自定义字库名称(一般设置为所引入的字库名),后续样式规则中则通过该名称来引用该字库。src
:设置字体的加载路径和格式,通过逗号分隔多个加载路径和格式srouce
:字体的加载路径,可以是绝对或相对 URL。format
:字体的格式,主要用于浏览器识别,一般有以下几种——truetype, opentype, truetype-aat, embedded-opentype, avg 等。font-weight
和font-style
和之前使用的是一致的。src
属性后还有一个local(font name)
字段,表示从用户系统中加载字体,失败后才加载webfont
。src: local(font name), url("font_name.ttf")
兼容浏览器
字体格式
对于@font-face 而言,兼容性问题就是各浏览器所能识别的字体格式不尽相同。
TrueType 格式(.ttf)
Windows 和 Mac 上常见的字体格式,是一种原始格式,因此它并没有为网页进行优化处理。
浏览器支持:IE9+, FireFox3.5+, Chrome4.0+, Safari3+, Opera10+, IOS Mobile Safari4.2+OpenType 格式(.otf)
以 TrueType 为基础,也是一种原始格式,但提供更多的功能。
浏览器支持:FireFox3.5+, Chrome4.0+, Safari3.1+, Opera10.0+, IOS Mobile Safari4.2+Web Open Font 格式(.woff)
针对网页进行特殊优化,因此是 Web 字体中最佳格式,它是一个开放的 TrueType/OpenType 的压缩版,同时支持元数据包的分离。
浏览器支持:IE9+, FireFox3.5+, Chrome6+, Safari3.6+, Opera11.1+Embedded Open Type 格式(.eot)
IE 专用字体格式,可以从 TrueType 格式创建此格式字体。
浏览器支持:IE4+SVG 格式(.svg)
基于 SVG 字体渲染的格式。
浏览器支持:Chrome4+, Safari3.1+, Opera10.0+, IOS Mobile Safari3.2+
这就意味着在@font-face 中我们至少需要.woff, .eot 两种格式字体,甚至还需要.svg 等字体达到更多种浏览版本的支持。
为了使@font-face 达到更多的浏览器支持,Paul Irish 写了一个独特的@font-face 语法叫 Bulletproof @font-face:
@font-face {
font-family: "YourWebFontName";
src: url("YourWebFontName.eot"); /* IE9 Compat Modes */
src: url("YourWebFontName.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */
url("YourWebFontName.woff") format("woff"),
/* Modern Browsers */ url("YourWebFontName.ttf") format("truetype"), /* Safari, Android, iOS */
url("YourWebFontName.svg#YourWebFontName") format("svg"); /* Legacy iOS */
}