梳理詳細 vue中引入第三方字體圖標庫iconfont

    最近在項目中需要使用第三方圖標庫,我選擇了阿里的iconfont。記錄下學習過程。在網上查閱資料的時候,發現很多教程寫的比較模糊,一些博主只是提供一種可實現的方式,但是並沒有完全區分iconfont的幾種引入方式及對應文件的作用,我一開始是有點混淆的,所以自己做了實踐總結。

目錄

1、在Iconfont網頁上建立自己的項目

2、選擇圖標加入購物車

3、Vue工程中引入iconfont

3.1本地引入和鏈接引入區別

3.2 unicode引用

3.2.1 本地引入

3.2.2 鏈接引入

3.3 font-class引用

3.3.1 本地引入

3.3.2 鏈接引入

3.4 symbol引用

3.4.1 本地引入

3.4.2 鏈接引入

3.5總結

4、參考資料


1、在Iconfont網頁上建立自己的項目

    打開官網:https://www.iconfont.cn/並登錄。

    在首頁選擇【圖標管理】-【我的項目】,

 

    進入項目管理頁面。

    點擊紫色按鈕,新建項目,

    填寫項目信息,即可完成新建一個項目。【FontClass/Symbol 前綴】和【Font Family】參數是自定義的,以後會與我們生成的代碼相關聯。

2、選擇圖標加入購物車

    新建好項目後,找到自己想要的圖標,加入購物車。

    點擊頁面右上角的購物車圖標,打開自己的購物車,選擇添加至項目,我們就可以在自己的項目下看到添加的圖標了。

    在我們的項目下,我們可以對圖標進行編輯。

 

 

3、Vue工程中引入iconfont

    官方文檔:https://www.iconfont.cn/help/detail?spm=a313x.7781069.1998910419.15&helptype=code

    有unicode引用、font-class引用、symbol引用三種引入方式,這三種方式又分有兩種情況:下載到本地引入,在線鏈接引入。在Iconfont網頁我們自己的項目下可以看到這些方式選擇。

 

3.1本地引入和鏈接引入區別

    在講三種引入方式之前先區分下本地引入和鏈接引入方式,避免混淆。

    本地引入就是將文件下載到本地,進行引用。如上圖所示,點擊【下載至本地】,就可以打包下載當前項目的文件資源,解壓後的一些文件是沒有用的,將下圖選中的文件放到自己的工程中引用即可。(其實iconfont.css和iconfont.js分別對應font-class引用和symbol引用,所以不需要都放在項目中,根據自己的需要選擇文件即可,我這裏選中表示這幾個文件是我們可能需要用到的。)。

 

    demo_index.html文件打開後是項目內容信息及教程。

 

    鏈接引入是使用平臺提供的網絡鏈接資源,不需要下載。在項目頁面點擊【查看在線鏈接】可以看到每種引入方式對應的代碼。

3.2 unicode引用

 

    根據文檔,unicode的方式我們只關注三個元素:font-face,iconfont樣式以及unicode字體編碼。

    @font-face是CSS3中的一個模塊,他主要是把自己定義的Web字體嵌入到你的網頁中。屬性詳解參考:http://www.cnblogs.com/moqiutao/archive/2015/12/23/5070463.html

    iconfont本質是一種特殊字體,所以可以通過font的相關屬性去控制樣式。第二步和第三步中的font-family就是創建項目時填寫的Font Family的值。至於classname可以自己定,不一定要用.iconfont。樣式中font-size屬性控制字體圖標大小,我們還可以通過color屬性修改顏色。

    “3”的形式就是字體編碼,在項目管理頁面可以通過【複製代碼】得到或者編輯查看。

 

3.2.1 本地引入

    unicode方式代碼量少,並不需要下載本地文件。

3.2.2 鏈接引入

    Unicode模式下的在線鏈接指的是font-face代碼。

    在vue中,將項目生成的font-face代碼和自定義的iconfont樣式寫在App.vue的style中,就可以在項目中引用圖標了。此時樣式是全局作用的,如果想要實現圖標不同的樣式,可以增加一層自定義樣式。

    <i class="iconfont myIconStyle">&#xe64a;</i>

    在”myIconStyle”樣式中修改color等屬性可以覆蓋全局的樣式,實現單個的樣式修改。

    這裏注意理解下,官方文檔說的“不支持多色”,是指我們iconfont網頁項目中,就算有多色圖標,引用的時候會自動去色,統一變成默認的顏色,不管你給圖標一編輯了紅色圖標二編輯了黃色,在項目中用unicode方式引用的時候都會變成默認顏色,但是我們仍然可以通過修改css樣式實現圖標顏色自定義,只是這個顏色編輯放在代碼層面來了。

3.3 font-class引用

 

    如官方文檔所說,font-class是爲了讓程序更加直觀可讀,直接用unicode會造成閱讀困難。font-class模式關鍵在於生成的css文件。

3.3.1 本地引入

    上面已經介紹過下載本地文件的方式,按照下圖選擇文件放入自己的項目中,vue中建議在assets文件夾下新建一個iconfont文件夾,放相關文件。

 

    然後在main.js中引入iconfont.css文件,就可以正常使用了。

    import './assets/iconfont/iconfont.css'

    不支持多色的意思,font-class引用和unicode引用是一樣道理,顏色和大小都可以自定義修改。

3.3.2 鏈接引入

    在index.html頭部中,引入css文件即可

    <link rel="stylesheet" type="text/css" href="http://at.alicdn.com/t/font_1160473_t1iruikumm.css">

3.4 symbol引用

 

    Symbol方式我們關注的是js文件。

3.4.1 本地引入

    將下載好的iconfont.js文件放入自己的工程目錄,在main.js中引入,在App.vue中寫好通用css代碼,即可使用。

    import './assets/iconfont/iconfont.js'

    這裏注意一點,下載下來的js文件是壓縮過的,如果項目使用了eslint語法校驗會瘋狂報錯,可以在js文件開頭加入

    /* eslint-disable */來指定該文件不應用eslint校驗。

3.4.2 鏈接引入

    在index.html頭部中,引入js文件即可

    <script src="//at.alicdn.com/t/font_1160473_t1iruikumm.js"></script>

3.5總結

    symbol引用最受官方推薦,也是最優的方式,但是瀏覽器兼容不好,目前來看,前端需要兼容一些低版本的瀏覽器,所以如果考慮到用戶使用,不建議採用symbol引用。

    unicode引用瀏覽器兼容最好,但是可讀性差,font-class引用雖然兼容性比unicode引用差一點,但是提高可讀性,綜合來看,目前項目中還是採用font-class引用比較好。

    因爲引用網絡資源的不穩定,所以建議採用本地引入的方式。

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

4、參考資料

    http://www.cnblogs.com/fashandian/p/6880892.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章