一、Iconfont
1. 概述
在前端作業中,二十年前只有頁面中鋪滿文字就算上線產品,現如今,不加點俏皮的“圖標”會讓頁面顯得很 Low 很 Low。

在寫這篇文章之前,我一直以為上圖中的“圖標”是一個個的圖片組成,但學習總是給人新知,現在我知道了它們只是一種字體,類似於“宋體”、“楷體”這種。如果我們要使用它們,也只需要在 css 文件中使用 @font-face 引入這種字體即可。@font-face 是 css3 的一個語法,剛興趣的可以自行閱讀 @font-face 用法 。
2. Iconfont 介紹
Iconfont 是阿里提供了一個圖標庫,你可以想象成是一個售賣圖標的超市,挑選你需要的圖標放入購物車,然后 Iconfont 會為你打包你購物車里的圖標,自動生成一種新的字體,你可以選擇下載到本地,在你的項目中引入這種字體,這樣即便沒有網絡的情況也可以使用圖標。
這種模式的一大優點就是只挑選出需要的圖標,不會像其他圖標庫那樣直接下載一整個圖標庫的內容,盡管你可能只會使用到其中一到兩個圖標。要知道,有的項目打包上線對大小是有嚴格要求的,比如微信小程序打包之后的代碼大小就要控制在 1 M以下。
關於如何使用 Iconfont,網絡已經有人贅述的很詳細了,這里就不再重復。具體步驟參閱: iconfont字體圖標的使用方法。
注:除了阿里的 Iconfont,Bootstrap 的圖標是 Font-Awsome。
二、字體格式 —— .eot、.woff、.ttf、.svg
1. 概述
在阿里圖標庫中下載圖標到本地后,目錄結構如下:

第一次看到這幾個文件時,不知道有什么用,可能會直接刪除,但萬萬不可,打開 iconfont.css 文件可以在 @font-face 中都有引用這幾個文件。查詢資料后得知:雖然現代瀏覽器支持自定義字體樣式,並且可以通過 @font-face 引入自定義的字體,但是各個瀏覽器對於字體樣式是存在兼容性問題的,而這幾個文件就是分別處理對應瀏覽兼容性問題的。
2. 字體格式介紹
目前最主要的幾種網絡字體(web font)格式包括WOFF,SVG,EOT,OTF/TTF。
WOFF
WOFF是Web Open Font Format幾個詞的首字母簡寫。這種字體格式專門用於網上,由Mozilla聯合其它幾大組織共同開發。WOFF字體通常比其它字體加載的要快些,因為使用了OpenType (OTF)和TrueType (TTF)字體里的存儲結構和壓縮算法。這種字體格式還可以加入元信息和授權信息。這種字體格式有君臨天下的趨勢,因為所有的現代瀏覽器都開始支持這種字體格式。【支持的瀏覽器:IE9+,Firefox3.5+,Chrome6+,Safari3.6+,Opera11.1+】
SVG / SVGZ
Scalable Vector Graphics (Font). SVG是一種用矢量圖格式改進的字體格式,體積上比矢量圖更小,適合在手機設備上使用。【支持的瀏覽器:Chrome4+,Safari3.1+,Opera10.0+,iOS Mobile Safari3.2+】
EOT
Embedded Open Type。這是微軟創造的字體格式。這種格式只在IE6-IE8里使用。【支持的瀏覽器:IE4+】
OTF / TTF
OpenType Font 和 TrueType Font。部分的因為這種格式容易被復制(非法的),這才催生了WOFF字體格式。然而,OpenType有很多獨特的地方,受到很多設計者的喜愛。【支持的瀏覽器:IE9+,Firefox3.5+,Chrome4+,Safari3+,Opera10+,iOS Mobile Safari4.2+】
3. 使用 @font-face 引入字體格式
因為各個瀏覽器對字體格式的不兼容,作為前端開發人員,我們需要考慮的全面性,將各個格式的字體都引入進來,這樣就不怕刁鑽的用戶使用哪種瀏覽器了。
常見兼容性寫法:
@font-face { font-family: 'yourfontname'; src: url('../fonts/singlemalta-webfont.eot'); src: url('../fonts/singlemalta-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/singlemalta-webfont.woff') format('woff'), url('../fonts/singlemalta-webfont.ttf') format('truetype'), url('../fonts/singlemalta-webfont.svg#defineName') format('svg'); font-weight: normal; font-style: normal; }
如果你是使用 Iconfont 下載字體到本地,那么恭喜你,打開 iconfont.css 文件,可以看到 Iconfont 已經幫助你配好了這些內容,你只需要在頁面中引入 iconfont.css 即可直接使用。
三、參考文章