說到瀏覽器對@font-face的兼容問題,這裏涉及到一個字體format的問題,由於不一樣的瀏覽器對字體格式支持是不一致的,這樣你們有必要了解一下,各類版本的瀏覽器支持什麼樣的字體,前面也簡單帶到了有關字體的幾種格式,下面我就分別說一下這個問題,讓你們內心有一個概念:css
1、TureTpe(.ttf)格式:html
.ttf字體是Windows和Mac的最多見的字體,是一種RAW格式,所以他不爲網站優化,支持這種字體的瀏覽器有【IE9+,Firefox3.5+,Chrome4+,Safari3+,Opera10+,iOS Mobile Safari4.2+】;css3
2、OpenType(.otf)格式:web
.otf字體被認爲是一種原始的字體格式,其內置在TureType的基礎上,因此也提供了更多的功能,支持這種字體的瀏覽器有【Firefox3.5+,Chrome4.0+,Safari3.1+,Opera10.0+,iOS Mobile Safari4.2+】;chrome
3、Web Open Font Format(.woff)格式:瀏覽器
.woff字體是Web字體中最佳格式,他是一個開放的TrueType/OpenType的壓縮版本,同時也支持元數據包的分離,支持這種字體的瀏覽器有【IE9+,Firefox3.5+,Chrome6+,Safari3.6+,Opera11.1+】;svg
4、Embedded Open Type(.eot)格式:字體
.eot字體是IE專用字體,能夠從TrueType建立此格式字體,支持這種字體的瀏覽器有【IE4+】;優化
5、SVG(.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聲明字體,要使用css3的@font-face引入字體,包括字體的eot ttf woff svg格式,以及相應的format樣式,分別對應embedded-opentype、truetype、woff、svg。
@font-face {font-family: 'iconfont'; src: url('iconfont.eot'); /* IE9*/ src: url('iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('iconfont.woff') format('woff'), /* chrome、firefox */ url('iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ url('iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */ }
第二步:定義使用iconfont的樣式
.iconfont{ font-family:"iconfont" !important; font-size:16px;font-style:normal; -webkit-font-smoothing: antialiased;/*字體清除鋸齒效果*/ -webkit-text-stroke-width: 0.2px;/*文本外邊框大小*/ -moz-osx-font-smoothing: grayscale;}
第三步:挑選相應圖標並獲取字體編碼,應用於頁面
<i class="iconfont">3</i>
阿里矢量圖標庫:http://www.iconfont.cn/
圖標的下載和使用:
<i class="iconfont"></i> <!--裏面寫上你想用的圖標下面的Unicode-->
4.而後能夠經過控制iconfont類的屬性改變圖標的樣式
.iconfont{ font-family:"iconfont"; font-size:16px; font-style:normal; -webkit-font-smoothing: antialiased; -webkit-text-stroke-width: 0.2px; -moz-osx-font-smoothing: grayscale; padding-left:20px }