阿里圖標庫iconfont字體圖標的使用

一、準備工作

1、首先,進入阿里的矢量圖標庫,在這個圖標庫里面可以找到很多圖片資源,當然了需要登錄才能下載或者使用,用GitHub賬號或者新浪微博賬號登錄都可以

2、登錄以后,可以搜索自己需要的資源,然后直接下載使用,或者建立圖標庫然后再使用,例如這里以刪除的圖標為例

a) 搜索刪除圖標

image

 b) 選擇需要的圖標,然后可以執行三種操作:添加入庫收藏或者直接下載,可以根據自己的實際情況來選擇相應操作,這里選擇添加入庫,操作完可以看到圖標已經添加進右上角的購物車里了

image

c) 點擊右上角的購物車,可以看到如下頁面,這里也是根據自己的具體情況來進行操作

一鍵清除:可以清掉所有圖標

下載素材:下載圖標資源,可以指定顏色、大小以及格式

下載代碼:下載字體圖標的代碼,包括demohtml和css文件、iconfontcssjs以及各種字體文件

添加至項目:建立一個自己的圖標庫,將圖標整合在一起,方便后續應用在自己的實際項目中

image

d) 這里選擇添加至項目,一開始沒有項目,需要點擊+號的圖標創建一個新項目,然后把新圖標加入到新項目中。如果已經有了項目,則選擇項目并點擊確定即可。這里的項目其實就是上面所說的圖標庫了

image

e) 進入到我的項目(圖標庫)中,可以看到如下頁面

image

下載至本地:下載該圖標庫的代碼到本地,代碼包括demohtmlcss文件、iconfontcssjs以及各種字體文件,demo是使用說明,iconfont文件是使用這個圖標庫所必須的文件,可根據使用的具體方式引用相應文件

[圖片上傳失敗...(image-99d0da-1563936599336)]

  UnicodeFontclass以及Symbol:三種使用的方式,在下載到本地的代碼中找到demodemohtml文件中有這三種方式的詳細使用說明

點擊查看在線鏈接:在頁面上可以看到一串字符串.css,這個就是這個圖標庫的在線鏈接,在實際項目中引入該鏈接即可使用而無需下載到本地(這個是FontClass的,UnicodeSymbol的有屬于自己的在線鏈接)

需要注意的是,如果在圖標庫中新增加了圖標,則需要更新在線鏈接并把該鏈接重新引入到實際項目中,或者重新下載代碼到本地,然后在實際項目中引入最新的iconfont文件

二、使用介紹

以下的使用方式都是來自下載下來的demo代碼,把這些都整合在一起,方便比較和查閱。至于使用在線鏈接的方式,因為比較簡單,這里就不做介紹,可以看下面的實戰

1Unicode方式

Unicode是字體在網頁端最原始的應用方式,特點是:

  • 兼容性最好,支持ie6+,及所有現代瀏覽器
  • 支持按字體的方式去動態調整圖標大小,顏色等等
  • 不支持多色。只能使用平臺里單色的圖標,就算項目里有多色圖標也會自動去色

注意:新版iconfont支持多色圖標,這些多色圖標在Unicode模式下將不能使用,如果有需求建議使用Symbol的引用方式

使用步驟如下:

 a) 拷貝項目下面生成的font-face,如果想要深入了解font-face屬性,可以點擊這里還有here

[
復制代碼

](javascript:void(0); "復制代碼")

<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); "復制代碼")

b) 定義使用iconfont的樣式

[
復制代碼

](javascript:void(0); "復制代碼")

<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); "復制代碼")

* c) *挑選相應圖標并獲取字體編碼,應用于頁面

<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中查看,或者可以在阿里矢量圖標庫的網站上,進入我的項目查看

image
</pre>

  2FontClass方式

 FontClassUnicode使用方式的一種變種,主要是解決Unicode書寫不直觀,語意不明確的問題。與Unicode使用方式相比,具有如下特點:

  • 兼容性良好,支持ie8+,及所有現代瀏覽器
  • 相比于Unicode語意明確,書寫更直觀。可以很容易分辨這個icon是什么
  • 因為使用class來定義圖標,所以當要替換圖標時,只需要修改class里面的unicode引用即可
  • 因為本質上還是使用的字體,所以多色圖標還是不支持

使用步驟如下:

a) 引入項目下面生成的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以及圖標的unicode引用,其實對比下可以發現Unicode方式和FontClass方式是極其相似的,只不過他們一個用的是圖標的字體編碼,一個用的是圖標的unicode引用而已

[
復制代碼

](javascript:void(0); "復制代碼")

<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); "復制代碼")

* b) *挑選相應圖標并獲取類名,應用于頁面

<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中查看,或者可以在阿里矢量圖標庫的網站上,進入我的項目查看。xxx是圖標的名字,你可以在網站上修改圖標的名字(FontClassSymbol都可以),但是切記如果你使用了在線鏈接,則必須在網站上更新在線鏈接,然后將該鏈接更新到你的項目中,如果你是本地使用,則必須下載最新的代碼,然后更新到你的項目中,否則修改無效

image

  3、Symbol方式

這是一種全新的使用方式,應該說這才是未來的主流,也是阿里矢量圖標庫平臺目前推薦的用法,但是在前端,新技術要向老設備看齊,所以你懂得。 這種用法其實是做了一個svg的集合,與另外兩種相比具有如下特點:

  • 支持多色圖標了,不再受單色限制
  • 通過一些技巧,支持像字體那樣,通過font-size,color來調整樣式(對于前兩種也是同樣適用的,fontsize改變大小,color改變顏色)
  • 兼容性較差,支持* ie9+,*及現代瀏覽器
  • 瀏覽器渲染svg的性能一般,還不如png

使用步驟如下:

a) 引入項目下面生成的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); "復制代碼")

<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); "復制代碼")

* c) *挑選相應圖標并獲取類名,應用于頁面

<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>

三、實戰

 1、本地使用

[
復制代碼

](javascript:void(0); "復制代碼")

<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 { /* 實際使用中是各用各的,這里不想寫那么多例子,所以就共用了一個,并不推薦這樣 / 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); "復制代碼")

運行代碼可以看到字體圖標已經出來了

image

  2、在線鏈接使用

[
復制代碼

](javascript:void(0); "復制代碼")

<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); "復制代碼")

運行代碼可以看到字體圖標已經出來了

image
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容