一、準(zhǔn)備工作
1、首先,進(jìn)入阿里的矢量圖標(biāo)庫(kù),在這個(gè)圖標(biāo)庫(kù)里面可以找到很多圖片資源,當(dāng)然了需要登錄才能下載或者使用,用GitHub賬號(hào)或者新浪微博賬號(hào)登錄都可以
2、登錄以后,可以搜索自己需要的資源,然后直接下載使用,或者建立圖標(biāo)庫(kù)然后再使用,例如這里以刪除的圖標(biāo)為例
a) 搜索刪除圖標(biāo)

b) 選擇需要的圖標(biāo),然后可以執(zhí)行三種操作:添加入庫(kù)、收藏或者直接下載,可以根據(jù)自己的實(shí)際情況來(lái)選擇相應(yīng)操作,這里選擇添加入庫(kù),操作完可以看到圖標(biāo)已經(jīng)添加進(jìn)右上角的購(gòu)物車?yán)锪?/p>

c) 點(diǎn)擊右上角的購(gòu)物車,可以看到如下頁(yè)面,這里也是根據(jù)自己的具體情況來(lái)進(jìn)行操作
一鍵清除:可以清掉所有圖標(biāo)
下載素材:下載圖標(biāo)資源,可以指定顏色、大小以及格式
下載代碼:下載字體圖標(biāo)的代碼,包括demo的html和css文件、iconfont的css、js以及各種字體文件
添加至項(xiàng)目:建立一個(gè)自己的圖標(biāo)庫(kù),將圖標(biāo)整合在一起,方便后續(xù)應(yīng)用在自己的實(shí)際項(xiàng)目中

d) 這里選擇添加至項(xiàng)目,一開(kāi)始沒(méi)有項(xiàng)目,需要點(diǎn)擊+號(hào)的圖標(biāo)創(chuàng)建一個(gè)新項(xiàng)目,然后把新圖標(biāo)加入到新項(xiàng)目中。如果已經(jīng)有了項(xiàng)目,則選擇項(xiàng)目并點(diǎn)擊確定即可。這里的項(xiàng)目其實(shí)就是上面所說(shuō)的圖標(biāo)庫(kù)了

e) 進(jìn)入到我的項(xiàng)目(圖標(biāo)庫(kù))中,可以看到如下頁(yè)面

下載至本地:下載該圖標(biāo)庫(kù)的代碼到本地,代碼包括demo的html和css文件、iconfont的css、js以及各種字體文件,demo是使用說(shuō)明,iconfont文件是使用這個(gè)圖標(biāo)庫(kù)所必須的文件,可根據(jù)使用的具體方式引用相應(yīng)文件
[圖片上傳失敗...(image-99d0da-1563936599336)]
Unicode、Fontclass以及Symbol:三種使用的方式,在下載到本地的代碼中找到demo,demo的html文件中有這三種方式的詳細(xì)使用說(shuō)明
點(diǎn)擊查看在線鏈接:在頁(yè)面上可以看到一串字符串.css,這個(gè)就是這個(gè)圖標(biāo)庫(kù)的在線鏈接,在實(shí)際項(xiàng)目中引入該鏈接即可使用而無(wú)需下載到本地(這個(gè)是FontClass的,Unicode跟Symbol的有屬于自己的在線鏈接)
需要注意的是,如果在圖標(biāo)庫(kù)中新增加了圖標(biāo),則需要更新在線鏈接并把該鏈接重新引入到實(shí)際項(xiàng)目中,或者重新下載代碼到本地,然后在實(shí)際項(xiàng)目中引入最新的iconfont文件
二、使用介紹
以下的使用方式都是來(lái)自下載下來(lái)的demo代碼,把這些都整合在一起,方便比較和查閱。至于使用在線鏈接的方式,因?yàn)楸容^簡(jiǎn)單,這里就不做介紹,可以看下面的實(shí)戰(zhàn)
1、Unicode方式
Unicode是字體在網(wǎng)頁(yè)端最原始的應(yīng)用方式,特點(diǎn)是:
- 兼容性最好,支持ie6+,及所有現(xiàn)代瀏覽器
- 支持按字體的方式去動(dòng)態(tài)調(diào)整圖標(biāo)大小,顏色等等
- 不支持多色。只能使用平臺(tái)里單色的圖標(biāo),就算項(xiàng)目里有多色圖標(biāo)也會(huì)自動(dòng)去色
注意:新版iconfont支持多色圖標(biāo),這些多色圖標(biāo)在Unicode模式下將不能使用,如果有需求建議使用Symbol的引用方式
使用步驟如下:
a) 拷貝項(xiàng)目下面生成的font-face,如果想要深入了解font-face屬性,可以點(diǎn)擊這里還有here
[
](javascript:void(0); "復(fù)制代碼")
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">@font-face { font-family: 'iconfont'; src: url('iconfont.eot'); src: url('iconfont.eot?#iefix') format('embedded-opentype'),
url('iconfont.woff') format('woff'),
url('iconfont.ttf') format('truetype'),
url('iconfont.svg#iconfont') format('svg');
}</pre>

](javascript:void(0); "復(fù)制代碼")
b) 定義使用iconfont的樣式
[
](javascript:void(0); "復(fù)制代碼")
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"> .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;
}</pre>

](javascript:void(0); "復(fù)制代碼")
* c) *挑選相應(yīng)圖標(biāo)并獲取字體編碼,應(yīng)用于頁(yè)面
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"> <i class="iconfont">3</i> </pre>
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: rgb(0, 0, 0); font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;"> 3是字體編碼,可在下載的demo.html中查看,或者可以在阿里矢量圖標(biāo)庫(kù)的網(wǎng)站上,進(jìn)入我的項(xiàng)目查看

2、FontClass方式
FontClass是Unicode使用方式的一種變種,主要是解決Unicode書(shū)寫(xiě)不直觀,語(yǔ)意不明確的問(wèn)題。與Unicode使用方式相比,具有如下特點(diǎn):
- 兼容性良好,支持ie8+,及所有現(xiàn)代瀏覽器
- 相比于Unicode語(yǔ)意明確,書(shū)寫(xiě)更直觀??梢院苋菀追直孢@個(gè)icon是什么
- 因?yàn)槭褂?em>class來(lái)定義圖標(biāo),所以當(dāng)要替換圖標(biāo)時(shí),只需要修改class里面的unicode引用即可
- 因?yàn)楸举|(zhì)上還是使用的字體,所以多色圖標(biāo)還是不支持
使用步驟如下:
a) 引入項(xiàng)目下面生成的fontclass代碼
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"> <link rel="stylesheet" type="text/css" href="./iconfont.css"> </pre>
iconfont.css代碼里包含了@font-face、.iconfont以及圖標(biāo)的unicode引用,其實(shí)對(duì)比下可以發(fā)現(xiàn)Unicode方式和FontClass方式是極其相似的,只不過(guò)他們一個(gè)用的是圖標(biāo)的字體編碼,一個(gè)用的是圖標(biāo)的unicode引用而已
[
](javascript:void(0); "復(fù)制代碼")
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">@font-face {font-family: "iconfont"; src: url('iconfont.eot?t=1495209181038'); /* IE9/ src: url('iconfont.eot?t=1495209181038#iefix') format('embedded-opentype'), / IE6-IE8 / url('iconfont.woff?t=1495209181038') format('woff'), / chrome, firefox / url('iconfont.ttf?t=1495209181038') format('truetype'), / chrome, firefox, opera, Safari, Android, iOS 4.2+/ url('iconfont.svg?t=1495209181038#iconfont') format('svg'); / iOS 4.1- */
} .iconfont { font-family:"iconfont" !important; font-size:16px; font-style:normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
} .icon-enter:before { content: "\e601"; } .icon-setUp:before { content: "\e600"; }</pre>

](javascript:void(0); "復(fù)制代碼")
* b) *挑選相應(yīng)圖標(biāo)并獲取類名,應(yīng)用于頁(yè)面
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"> <i class="iconfont icon-xxx"></i> </pre>
icon-xxx是使用了unicode引用的類名,可在下載的demo.html中查看,或者可以在阿里矢量圖標(biāo)庫(kù)的網(wǎng)站上,進(jìn)入我的項(xiàng)目查看。xxx是圖標(biāo)的名字,你可以在網(wǎng)站上修改圖標(biāo)的名字(FontClass和Symbol都可以),但是切記如果你使用了在線鏈接,則必須在網(wǎng)站上更新在線鏈接,然后將該鏈接更新到你的項(xiàng)目中,如果你是本地使用,則必須下載最新的代碼,然后更新到你的項(xiàng)目中,否則修改無(wú)效

3、Symbol方式
這是一種全新的使用方式,應(yīng)該說(shuō)這才是未來(lái)的主流,也是阿里矢量圖標(biāo)庫(kù)平臺(tái)目前推薦的用法,但是在前端,新技術(shù)要向老設(shè)備看齊,所以你懂得。 這種用法其實(shí)是做了一個(gè)svg的集合,與另外兩種相比具有如下特點(diǎn):
- 支持多色圖標(biāo)了,不再受單色限制
- 通過(guò)一些技巧,支持像字體那樣,通過(guò)
font-size,color來(lái)調(diào)整樣式(對(duì)于前兩種也是同樣適用的,fontsize改變大小,color改變顏色) - 兼容性較差,支持* ie9+,*及現(xiàn)代瀏覽器
- 瀏覽器渲染svg的性能一般,還不如png
使用步驟如下:
a) 引入項(xiàng)目下面生成的Symbol代碼
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"> <script src="./iconfont.js"></script></pre>
b) 加入通用css代碼(引入一次就行)
[
](javascript:void(0); "復(fù)制代碼")
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">.icon { width: 1em; height: 1em; vertical-align: -0.15em; fill: currentColor; overflow: hidden;
}</pre>

](javascript:void(0); "復(fù)制代碼")
* c) *挑選相應(yīng)圖標(biāo)并獲取類名,應(yīng)用于頁(yè)面
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"> <svg class="icon" aria-hidden="true">
<use xlink:href="#icon-xxx"></use>
</svg></pre>
三、實(shí)戰(zhàn)
1、本地使用
[
](javascript:void(0); "復(fù)制代碼")
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>iconfont</title>
<style type="text/css"> @font-face { /* 實(shí)際使用中是各用各的,這里不想寫(xiě)那么多例子,所以就共用了一個(gè),并不推薦這樣 / font-family: "iconfont"; src: url('css/iconfont/iconfont.eot?t=1495209181038'); / IE9/ src: url('css/iconfont/iconfont.eot?t=1495209181038#iefix') format('embedded-opentype'), / IE6-IE8 / url('css/iconfont/iconfont.woff?t=1495209181038') format('woff'), / chrome, firefox / url('css/iconfont/iconfont.ttf?t=1495209181038') format('truetype'), / chrome, firefox, opera, Safari, Android, iOS 4.2+/ url('css/iconfont/iconfont.svg?t=1495209181038#iconfont') format('svg'); / iOS 4.1- */
} .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;
} .icon-sendMsg:before { content: "\e60c"; } .icon { width: 1em; height: 1em; vertical-align: -0.15em; fill: currentColor; overflow: hidden;
}
</style>
<script type="text/javascript" src="css/iconfont/iconfont.js"></script>
</head>
<body>
<div style="width: 100%;text-align: center;">
<p><i class="iconfont"></i>Unicode</p>
<p><i class="iconfont icon-sendMsg"></i>FontClass</p>
<p style="font-size: 3em;">
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-sendMsg"></use>
</svg> Symbol </p>
</div>
</body>
</html></pre>

](javascript:void(0); "復(fù)制代碼")
運(yùn)行代碼可以看到字體圖標(biāo)已經(jīng)出來(lái)了

2、在線鏈接使用
[
](javascript:void(0); "復(fù)制代碼")
<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>iconfont</title>
<link rel="stylesheet" type="text/css" >
<style type="text/css"> @font-face { /* Unicode / font-family: 'iconfont'; / project id 293930 */ src: url('http://at.alicdn.com/t/font_kpdcqplvwqwr8uxr.eot'); src: url('http://at.alicdn.com/t/font_kpdcqplvwqwr8uxr.eot?#iefix') format('embedded-opentype'),
url('http://at.alicdn.com/t/font_kpdcqplvwqwr8uxr.woff') format('woff'),
url('http://at.alicdn.com/t/font_kpdcqplvwqwr8uxr.ttf') format('truetype'),
url('http://at.alicdn.com/t/font_kpdcqplvwqwr8uxr.svg#iconfont') format('svg');
} .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;
} .icon-sendMsg:before { content: "\e60c"; } .icon { width: 1em; height: 1em; vertical-align: -0.15em; fill: currentColor; overflow: hidden;
} p{ color: #fff;
}
</style>
<script type="text/javascript" src="http://at.alicdn.com/t/font_kpdcqplvwqwr8uxr.js"></script>
</head>
<body>
<div style="width: 100%;text-align: center;background: #000;padding: 20px 0;">
<p><i class="iconfont"></i>Unicode</p>
<p><i class="iconfont icon-sendMsg"></i>FontClass</p>
<p style="font-size: 3em;">
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-sendMsg"></use>
</svg> Symbol </p>
</div>
</body>
</html></pre>

](javascript:void(0); "復(fù)制代碼")
運(yùn)行代碼可以看到字體圖標(biāo)已經(jīng)出來(lái)了
