在看別人 github 項(xiàng)目的時候妓局,看到了 iconfont,百度了一下是阿里的圖標(biāo)庫呈宇,這個很容易理解好爬,但是自己操作一遍之后發(fā)現(xiàn)下載下來的目錄還包含了 .eot、.woff 等文件甥啄,對于這些新東西感到有些陌生存炮,在經(jīng)過一番查找之后有所得,整理思路蜈漓,記錄于此穆桂。
一、Iconfont
1. 概述
在前端作業(yè)中融虽,二十年前只有頁面中鋪滿文字就算上線產(chǎn)品享完,現(xiàn)如今,不加點(diǎn)俏皮的“圖標(biāo)”會讓頁面顯得很 Low 很 Low有额。
在寫這篇文章之前般又,我一直以為上圖中的“圖標(biāo)”是一個個的圖片組成,但學(xué)習(xí)總是給人新知巍佑,現(xiàn)在我知道了它們只是一種字體倒源,類似于“宋體”、“楷體”這種句狼。如果我們要使用它們笋熬,也只需要在 css 文件中使用 @font-face 引入這種字體即可。@font-face 是 css3 的一個語法腻菇,剛興趣的可以自行閱讀 @font-face 用法 胳螟。
2. Iconfont 介紹
Iconfont 是阿里提供了一個圖標(biāo)庫,你可以想象成是一個售賣圖標(biāo)的超市筹吐,挑選你需要的圖標(biāo)放入購物車糖耸,然后 Iconfont 會為你打包你購物車?yán)锏膱D標(biāo),自動生成一種新的字體丘薛,你可以選擇下載到本地嘉竟,在你的項(xiàng)目中引入這種字體,這樣即便沒有網(wǎng)絡(luò)的情況也可以使用圖標(biāo)洋侨。
這種模式的一大優(yōu)點(diǎn)就是只挑選出需要的圖標(biāo)舍扰,不會像其他圖標(biāo)庫那樣直接下載一整個圖標(biāo)庫的內(nèi)容,盡管你可能只會使用到其中一到兩個圖標(biāo)希坚。要知道边苹,有的項(xiàng)目打包上線對大小是有嚴(yán)格要求的,比如微信小程序打包之后的代碼大小就要控制在 1 M以下裁僧。
關(guān)于如何使用 Iconfont个束,網(wǎng)絡(luò)已經(jīng)有人贅述的很詳細(xì)了慕购,這里就不再重復(fù)。具體步驟參閱: iconfont字體圖標(biāo)的使用方法茬底。
注:除了阿里的 Iconfont沪悲,Bootstrap 的圖標(biāo)是 Font-Awsome。
二阱表、字體格式 —— .eot殿如、.woff、.ttf捶枢、.svg
1. 概述
在阿里圖標(biāo)庫中下載圖標(biāo)到本地后,目錄結(jié)構(gòu)如下:
第一次看到這幾個文件時飞崖,不知道有什么用烂叔,可能會直接刪除,但萬萬不可固歪,打開 iconfont.css 文件可以在 @font-face 中都有引用這幾個文件蒜鸡。查詢資料后得知:雖然現(xiàn)代瀏覽器支持自定義字體樣式,并且可以通過 @font-face 引入自定義的字體牢裳,但是各個瀏覽器對于字體樣式是存在兼容性問題的逢防,而這幾個文件就是分別處理對應(yīng)瀏覽兼容性問題的。
2. 字體格式介紹
目前最主要的幾種網(wǎng)絡(luò)字體(web font)格式包括WOFF蒲讯,SVG忘朝,EOT,OTF/TTF判帮。
WOFF
WOFF是Web Open Font Format幾個詞的首字母簡寫局嘁。這種字體格式專門用于網(wǎng)上,由Mozilla聯(lián)合其它幾大組織共同開發(fā)晦墙。WOFF字體通常比其它字體加載的要快些悦昵,因?yàn)槭褂昧薕penType (OTF)和TrueType (TTF)字體里的存儲結(jié)構(gòu)和壓縮算法。這種字體格式還可以加入元信息和授權(quán)信息晌畅。這種字體格式有君臨天下的趨勢但指,因?yàn)樗械默F(xiàn)代瀏覽器都開始支持這種字體格式】剐ǎ【支持的瀏覽器:IE9+,Firefox3.5+,Chrome6+,Safari3.6+,Opera11.1+】
SVG / SVGZ
Scalable Vector Graphics (Font). SVG是一種用矢量圖格式改進(jìn)的字體格式棋凳,體積上比矢量圖更小,適合在手機(jī)設(shè)備上使用连躏∑冻龋【支持的瀏覽器:Chrome4+,Safari3.1+,Opera10.0+,iOS Mobile Safari3.2+】
EOT
Embedded Open Type。這是微軟創(chuàng)造的字體格式反粥。這種格式只在IE6-IE8里使用卢肃∑S兀【支持的瀏覽器:IE4+】
OTF / TTF
OpenType Font 和 TrueType Font。部分的因?yàn)檫@種格式容易被復(fù)制(非法的)莫湘,這才催生了WOFF字體格式尤蒿。然而,OpenType有很多獨(dú)特的地方幅垮,受到很多設(shè)計(jì)者的喜愛腰池。【支持的瀏覽器:IE9+,Firefox3.5+,Chrome4+,Safari3+,Opera10+,iOS Mobile Safari4.2+】
3. 使用 @font-face 引入字體格式
因?yàn)楦鱾€瀏覽器對字體格式的不兼容忙芒,作為前端開發(fā)人員示弓,我們需要考慮的全面性,將各個格式的字體都引入進(jìn)來呵萨,這樣就不怕刁鉆的用戶使用哪種瀏覽器了奏属。
常見兼容性寫法:
@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 已經(jīng)幫助你配好了這些內(nèi)容,你只需要在頁面中引入 iconfont.css 即可直接使用忱嘹。