語(yǔ)法規(guī)則
先看下@font-face的語(yǔ)法規(guī)則:
@font-face {
font-family:<YourWebFontName>;
src:<source>[<format>][,<source>[<format>]]*;
[font-weight:<weight>];
[font-style:<style>];
}
取值說(shuō)明:
1、YourWebFontName: 自定義字庫(kù)名稱(chēng)(一般設(shè)置為所引入的字庫(kù)名),后續(xù)樣式規(guī)則中則通過(guò)該名稱(chēng)來(lái)引用該字庫(kù)。最好是使用你下載的默認(rèn)字體,他將被引用到你的Web元素中的font-family。如“font-family:”YourWebFontName”;”
2、src:設(shè)置字體的加載路徑和格式,通過(guò)逗號(hào)分隔多個(gè)加載路徑和格式
3、source:此值指的是你自定義的字體的存放路徑,可以是相對(duì)路徑也可以是絕路徑;
4、format:此值指的是你自定義的字體的格式,主要用來(lái)幫助瀏覽器識(shí)別,其值主要有以下幾種類(lèi)型:truetype,opentype,truetype-aat,embedded-opentype,avg等;
5、weight和style:這兩個(gè)值大家一定很熟悉,weight定義字體是否為粗體,style主要定義字體樣式,如斜體。
src屬性后還有一個(gè) local(font name) 字段,表示從用戶系統(tǒng)中加載字體,失敗后才加載webfont。
src: local(font name), url("font_name.ttf")
字體格式
對(duì)于@font-face而言,兼容性問(wèn)題就是各瀏覽器所能識(shí)別的字體格式不盡相同。
1、TrueType格式(.ttf):
Windows和Mac上常見(jiàn)的字體格式,是一種原始格式,因此它并沒(méi)有為網(wǎng)頁(yè)進(jìn)行優(yōu)化處理。
瀏覽器支持:IE9+,FireFox3.5+,Chrome4.0+,Safari3+,Opera10+,IOS Mobile Safari4.2+
2、OpenType格式(.otf):
以TrueType為基礎(chǔ),也是一種原始格式,但提供更多的功能。
瀏覽器支持:FireFox3.5+,Chrome4.0+,Safari3.1+,Opera10.0+,IOS Mobile Safari4.2+
3、Web Open Font格式(.woff):
針對(duì)網(wǎng)頁(yè)進(jìn)行特殊優(yōu)化,因此是Web字體中最佳格式,它是一個(gè)開(kāi)放的TrueType/OpenType的壓縮版,同時(shí)支持元數(shù)據(jù)包的分離。
瀏覽器支持:IE9+, FireFox3.5+, Chrome6+, Safari3.6+,Opera11.1+
4、Embedded Open Type格式(.eot):
IE專(zhuān)用字體格式,可以從TrueType格式創(chuàng)建此格式字體。
瀏覽器支持:IE4+
5、SVG格式(.svg):
基于SVG字體渲染的格式。
瀏覽器支持:Chrome4+, Safari3.1+, Opera10.0+, IOS Mobile Safari3.2+
這就意味著在@font-face中我們至少需要.woff,.eot兩種格式字體,甚至還需要.svg等字體達(dá)到更多種瀏覽版本的支持。
為了使@font-face達(dá)到更多的瀏覽器支持,Paul Irish寫(xiě)了一個(gè)獨(dú)特的@font-face語(yǔ)法叫Bulletproof @font-face:
@font-face {
font-family:'YourWebFontName';
src:url('YourWebFontName.eot?')format('eot');/*IE*/
src:url('YourWebFontName.woff')format('woff'),
url('YourWebFontName.ttf')format('truetype');/*non-IE*/
}
但為了讓各多的瀏覽器支持,也可以寫(xiě)成:
@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 */
}
既然要使用里面的圖標(biāo),那么多圖標(biāo),怎么調(diào)用呢,這個(gè)問(wèn)題就是上篇文章的內(nèi)容了字體圖標(biāo)生成原理(1)