認(rèn)識(shí) Iconfont 以及什么是 .eot、.woff、.ttf、.svg

在看別人 github 項(xiàng)目的時(shí)候,看到了 iconfont,百度了一下是阿里的圖標(biāo)庫(kù),這個(gè)很容易理解,但是自己操作一遍之后發(fā)現(xiàn)下載下來(lái)的目錄還包含了 .eot、.woff 等文件,對(duì)于這些新東西感到有些陌生,在經(jīng)過(guò)一番查找之后有所得,整理思路,記錄于此。

一、Iconfont

1. 概述

在前端作業(yè)中,二十年前只有頁(yè)面中鋪滿文字就算上線產(chǎn)品,現(xiàn)如今,不加點(diǎn)俏皮的“圖標(biāo)”會(huì)讓頁(yè)面顯得很 Low 很 Low。

圖標(biāo)

在寫(xiě)這篇文章之前,我一直以為上圖中的“圖標(biāo)”是一個(gè)個(gè)的圖片組成,但學(xué)習(xí)總是給人新知,現(xiàn)在我知道了它們只是一種字體,類似于“宋體”、“楷體”這種。如果我們要使用它們,也只需要在 css 文件中使用 @font-face 引入這種字體即可。@font-face 是 css3 的一個(gè)語(yǔ)法,剛興趣的可以自行閱讀 @font-face 用法 。

2. Iconfont 介紹

Iconfont 是阿里提供了一個(gè)圖標(biāo)庫(kù),你可以想象成是一個(gè)售賣(mài)圖標(biāo)的超市,挑選你需要的圖標(biāo)放入購(gòu)物車(chē),然后 Iconfont 會(huì)為你打包你購(gòu)物車(chē)?yán)锏膱D標(biāo),自動(dòng)生成一種新的字體,你可以選擇下載到本地,在你的項(xiàng)目中引入這種字體,這樣即便沒(méi)有網(wǎng)絡(luò)的情況也可以使用圖標(biāo)。

這種模式的一大優(yōu)點(diǎn)就是只挑選出需要的圖標(biāo),不會(huì)像其他圖標(biāo)庫(kù)那樣直接下載一整個(gè)圖標(biāo)庫(kù)的內(nèi)容,盡管你可能只會(huì)使用到其中一到兩個(gè)圖標(biāo)。要知道,有的項(xiàng)目打包上線對(duì)大小是有嚴(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)庫(kù)中下載圖標(biāo)到本地后,目錄結(jié)構(gòu)如下:

圖標(biāo)庫(kù)下載到本地目錄結(jié)構(gòu)

第一次看到這幾個(gè)文件時(shí),不知道有什么用,可能會(huì)直接刪除,但萬(wàn)萬(wàn)不可,打開(kāi) iconfont.css 文件可以在 @font-face 中都有引用這幾個(gè)文件。查詢資料后得知:雖然現(xiàn)代瀏覽器支持自定義字體樣式,并且可以通過(guò) @font-face 引入自定義的字體,但是各個(gè)瀏覽器對(duì)于字體樣式是存在兼容性問(wèn)題的,而這幾個(gè)文件就是分別處理對(duì)應(yīng)瀏覽兼容性問(wèn)題的。

2. 字體格式介紹

目前最主要的幾種網(wǎng)絡(luò)字體(web font)格式包括WOFF,SVG,EOT,OTF/TTF。

WOFF

WOFF是Web Open Font Format幾個(gè)詞的首字母簡(jiǎn)寫(xiě)。這種字體格式專門(mén)用于網(wǎng)上,由Mozilla聯(lián)合其它幾大組織共同開(kāi)發(fā)。WOFF字體通常比其它字體加載的要快些,因?yàn)槭褂昧薕penType (OTF)和TrueType (TTF)字體里的存儲(chǔ)結(jié)構(gòu)和壓縮算法。這種字體格式還可以加入元信息和授權(quán)信息。這種字體格式有君臨天下的趨勢(shì),因?yàn)樗械默F(xiàn)代瀏覽器都開(kāi)始支持這種字體格式?!局С值臑g覽器: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里使用。【支持的瀏覽器:IE4+】

OTF / TTF

OpenType Font 和 TrueType Font。部分的因?yàn)檫@種格式容易被復(fù)制(非法的),這才催生了WOFF字體格式。然而,OpenType有很多獨(dú)特的地方,受到很多設(shè)計(jì)者的喜愛(ài)?!局С值臑g覽器:IE9+,Firefox3.5+,Chrome4+,Safari3+,Opera10+,iOS Mobile Safari4.2+】

3. 使用 @font-face 引入字體格式

因?yàn)楦鱾€(gè)瀏覽器對(duì)字體格式的不兼容,作為前端開(kāi)發(fā)人員,我們需要考慮的全面性,將各個(gè)格式的字體都引入進(jìn)來(lái),這樣就不怕刁鉆的用戶使用哪種瀏覽器了。

常見(jiàn)兼容性寫(xiě)法:

@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 下載字體到本地,那么恭喜你,打開(kāi) iconfont.css 文件,可以看到 Iconfont 已經(jīng)幫助你配好了這些內(nèi)容,你只需要在頁(yè)面中引入 iconfont.css 即可直接使用。

三、參考文章

  1. 博客園 - iconfont字體圖標(biāo)的使用方法--超簡(jiǎn)單!
  2. Airen的博客 - CSS3 @font-face
  3. 簡(jiǎn)書(shū) - CSS3 @font-face屬性
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一.iconfont使用場(chǎng)景(優(yōu)缺點(diǎn)); 一般我們項(xiàng)目決定要使用一個(gè)技術(shù)點(diǎn)前,會(huì)查相關(guān)資料對(duì)其有大概的理解。例如,...
    蕭強(qiáng)閱讀 1,949評(píng)論 1 6
  • 最近興致上來(lái),就想更換了那Blog標(biāo)題字體(漢字的);網(wǎng)上搜索了一番,發(fā)現(xiàn)蘇新詩(shī)柳繁體這款甚合我心;然后就著手搞將...
    晚晴幽草閱讀 2,539評(píng)論 1 7
  • 首先說(shuō)明,我是web前端開(kāi)發(fā)的新手,高手忽噴!。最近開(kāi)發(fā)一個(gè)微信商城,要用到很多圖標(biāo),之前我都是用@×2雪碧圖。但...
    Cola丶ZYQ閱讀 2,320評(píng)論 1 2
  • 所謂iconfont就是用字體文件取代圖片文件,來(lái)展示圖標(biāo),特殊字體等元素。 ---------優(yōu)點(diǎn)-------...
    SuperSnail閱讀 3,125評(píng)論 0 6
  • 教育的對(duì)立面是操縱。--弗洛姆 本書(shū)作者從自己的女兒圓圓以及身邊朋友的孩子遇到的教育問(wèn)題來(lái)暢敘作為一個(gè)家長(zhǎng)該如何引...
    桃酥1618閱讀 554評(píng)論 1 1

友情鏈接更多精彩內(nèi)容