vue專案中引入iconfont

2021-09-25 04:01:18 字數 1403 閱讀 2455

對於前端而言,圖示的發展可謂日新月異。從img標籤,到雪碧圖,再到字型圖示,svg,甚至svg也有了類似於雪碧圖的方案svg-sprite-loader。雪碧圖沒有什麼好講的了,只是簡單地利用了background-position來做圖示定位。今天咱們先聊聊怎麼使用字型圖示和svg圖示。其實字型圖示也不陌生了,bootstrap,font-awesome,element-ui等ui庫都基本標配了字型圖示。

簡單說下原理

unicode預留了e000-f8ff範圍作為私有保留區域,這個區間的unicode碼非常適合做字型圖示,前端根據unicode碼就能顯示對應的圖示。

vue專案引入iconfont

在iconfont新建專案

注:這裡修正一下,字首應該是test-icon-。

2. 新增圖示至專案

@font-face

複製**

頁面中使用

使用時很不友好,使用的是unicode碼表示,使用圖示還必須去iconfont專案去查詢下unicode碼。

複製**效果圖如下:

在全域性樣式檔案中定義如下**

@font-face

.iconfont

複製**

複製**

總結相容性最好,支援ie6+,及所有現代瀏覽器。

支援按字型的方式去動態調整圖示大小,顏色等等。

但是因為是字型,所以不支援多色。只能使用平台裡單色的圖示,就算專案裡有多色圖示也會自動去色。

在index.html中引用它。

複製**專案中就可以使用字型圖示了。

.iconfont

// 列了一部分舉例

.cl-icon-user:before

.cl-icon-video:before

.cl-icon-pause:before

.cl-icon-orgnazation:before

複製**總結

相容性良好,支援ie8+,及所有現代瀏覽器。

相比於unicode語意明確,書寫更直觀。可以很容易分辨這個icon是什麼。

因為使用class來定義圖示,所以當要替換圖示時,只需要修改class裡面的unicode引用。

不過因為本質上還是使用的字型,所以多色圖示還是不支援的。

然後在index.html中引入這個js檔案

複製**這個js的作用是在文件中生成svg symbol

最後就可以在頁面中通過use標籤使用svg圖示了。xlink:href的值設定為對應的symbol的id即可。

複製**效果如下:

複製**圖示自動管理(必看)

即使使用了symbol方式,當設計小姐姐新增圖示時,我們還是無法避免重新生成圖示**。那麼有沒有更優雅的解決方案呢?答案是有的。svg-sprite-loader + require.context。

vue專案中引入jquery和jqueryui

之前一直不喜歡在vue裡面引入jq的東西,因為和vue的理念是背道而馳的,但是後來因為專案需求難以解決,不得不引入入jquery去解決,才感嘆jq還是很強大的啊 真香嘻嘻 我的專案是基於vue 2.0的。3.0的可能會有些不同,但是應該問題不大了 首先,我們得在package.json檔案中的dep...

vue 在vue 專案中引入外部js檔案

在普通的專案中,我們可以通過來引入外部的js檔案,但是在vue專案中,就不可以使用這種方式了,需要使用es6語法來引入,同時還要對已有的js檔案做相應的修改。一般情況下,我們引入外部js檔案,是要呼叫js檔案中的函式。在vue專案中,我們首先要使用export命令將這個函式丟擲,然後才能在其他的vu...

專案中引入字型

font face html,body蘋方提供了六個字重,font family 定義如下 蘋方 簡 常規體 font family pingfangsc regular,sans serif 蘋方 簡 極細體 font family pingfangsc ultralight,sans serif...