做小圖標還用sprite圖?你out了!史上最簡單易懂iconfont使用教程


1、什么是iconfont?

說白了就是用圖標制作而成的一套字體文件,本質是一個字體文件(擴展名是ttf\woff\svg的文件)。它是用來制作網頁常用小圖標的一種方法。以下是天貓首頁使用iconfont的場景:

 

2、用iconfont有什么優缺點?

1)文件小,以往常用的sprite圖如果要放上上百個圖標,那么這張圖的大小可能有100k+,而上百個圖標做成的iconfont文件,往往只有十幾k

2)可縮放,因為是矢量的字體文件,因此不像sprite圖放大到一定尺寸了圖片失真嚴重

3)缺點:只能使用單色,畢竟只是個字體嘛

 

3、如何制作iconfont字體文件?

 首先你需要安裝2個工具,一個是Adobe的illustrator,一個是FontLab studio(點擊下載)。

illustrator是用來打開設計師給你的eps矢量文件的,而FontLab則是字體制作工具。下面來看一下使用方法:

1)復制圖形。打開illustrator,把設計師做好的圖標的eps文件打開,點擊選擇工具,在畫布中選擇整個矢量圖形,按下ctrl+C復制圖形,如圖:

2)創建字體文件。打開FontLab,選擇 文件>新建,打開一個新字體編輯文件,雙擊任意一個字符打開該字符的編輯器,如圖:

3)粘貼圖標。然后將你在illustrator中復制出來的圖標,按ctrl+V粘貼到FontLab中的字符編輯器中,並用左側的工具欄移動或者調整縮放(快捷鍵ctrl+9)至合適的位置

4)導出字體。點擊 文件>生成字體,將編輯好的字體文件導出成字體,一般選擇ttf格式保存。(如果你的FontLab未注冊,那么會提示你無法保存,破解的方法請自行百度,此文不贅述)

字體文件生成並保存后,就生成了如下圖這樣的字體文件,它的大小只有3k左右(你還可以繼續添加圖標,但k數不會增長太大)

 

4、如何在代碼中使用iconfont?

1)引入CSS。首先我們要先把這個字體文件引入css,由於不同瀏覽器對字體文件支持不同,因此需要將ttf格式轉成不同格式的字體文件來兼容。字體文件轉格式網上有許多線上轉換的工具,我常用的是這個:http://www.freefontconverter.com/

引入代碼如下(不同格式的文件使用的語法不同,這點我也還沒搞太清楚,先參照前輩的寫):

@font-face {
        font-family: 'star';
        src: url('star.eot'); /* 兼容IE9*/
        src: url('star.eot?#iefix') format('embedded-opentype'), /* 兼容IE6-IE8 */
             url('star.woff') format('woff'), /* 兼容chrome、firefox */
             url('star.ttf')  format('truetype'), /* 兼容chrome、firefox、opera、Safari, Android, iOS 4.2+*/
             url('star.svg#uxiconfont') format('svg'); /*  兼容iOS 4.1- */
    }

2)使用iconfont。在需要使用圖標的地方,通過偽元素來運用iconfont,例如:

.something::before{
    font-family:"star";/*上面引入字體文件的命名*/
    content:"A";/*我們的圖標在字體文件中占了A的位置*/
    font-size:14px;
    color:#000
        }

 

附:目前主流瀏覽器對於icon font的支持如下:

IE:從IE4開始支持eot格式,IE9開始支持woff。
webkit/safari:支持TrueType/OpenType(.ttf),OpenType PS(.otf),iOS4.2+支持.ttf,iOS 4.2以下只支持SVG字體; Safari5.1+ 開始支持woff格式
Chrome:除webkit支持的以外,從Chrome 6開始,開始支持woff格式;
Firefox:支持.ttf和.otf,從Firefox 3.6開始支持woff格式;
Opera:支持.ttf、.otf、.svg。 Opera 11開始支持woff;
iPad, iPhone and Android 3.0+ 支持SVG fonts。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM