小圖標(biāo)icon-fonts解決方案

  • 老生常談了,一般來說簡(jiǎn)單優(yōu)化曲饱,可以選擇使用精靈圖,把多個(gè)icon放在一張圖中珠月,本來需要請(qǐng)求多次的圖標(biāo)請(qǐng)求一次就ok了扩淀。

  • 本文介紹的是另一種方法,對(duì)于純色的icon啤挎,可以把他們打包成字體文件(目前應(yīng)該打包成兩個(gè)文件驻谆,一個(gè)*.ttf卵凑,一個(gè)*.woff,woff格式相對(duì)較新胜臊,是專門針對(duì)web的格式勺卢,兼容性不高,但是整體大小比tff文件小40%左右象对,所以引入兩個(gè)文件黑忱,如果打開項(xiàng)目的瀏覽器支持woff格式的字體,則自動(dòng)引入woff)勒魔,引入項(xiàng)目甫煞,一次請(qǐng)求就下載了全部項(xiàng)目用到的純色icon,就woff來說冠绢,我項(xiàng)目中的woff抚吠,經(jīng)過服務(wù)器壓縮,最后只有179B(這里修正一個(gè)錯(cuò)誤弟胀,貌似服務(wù)器并不能壓縮字體文件楷力,但是也不用擔(dān)心,一個(gè)143個(gè)圖標(biāo)的woff文件只有不到15kb)孵户。下面開始介紹具體制作和引入方法弥雹。

  • 首先需要制作字體文件,在mac系統(tǒng)下延届,先下載一個(gè)軟件叫Panda剪勿,圖標(biāo)是一個(gè)熊貓,然后找UI要svg矢量圖(這個(gè)軟件只能用svg生成字體文件)方庭,軟件的使用很簡(jiǎn)單厕吉,首次使用點(diǎn)擊下面三個(gè)tab中的第一個(gè)“拼合”,把svg拖入軟件械念,點(diǎn)擊生成头朱,軟件會(huì)在svg所在的文件夾生成一個(gè)demo文件夾,兩個(gè)字體文件就生成到這個(gè)文件里了


    image.png
  • 第二次添加圖標(biāo)的時(shí)候龄减,點(diǎn)擊軟件下面三個(gè)tab中的第二個(gè)“修改”项钮,把之前生成的ttf文件拖入軟件,再拖入需要添加的svg希停,點(diǎn)擊生成烁巫,就會(huì)更新“demo”文件夾中的字體文件了。

  • 制作好了字體文件宠能,進(jìn)入第二步亚隙,比如把字體文件放入index.html同級(jí)的fonts文件夾中,推薦的做法是把字體圖標(biāo)的聲明和定義樣式全部抽離到一個(gè)文件中违崇,再引入App.vue

  • 字體編碼可以在demo/demo.html中查看阿弃,比如第一個(gè)圖標(biāo)下面的編碼為ခ诊霹,則對(duì)應(yīng)的字體編碼為\1001

/* 使用font-face聲明字體 */
@font-face {
  font-family: 'iconfont';
  src: url('fonts/iconfont.woff?t=1510834658947') format('woff'), /* chrome, firefox */
       url('fonts/iconfont.ttf?t=1510834658947') format('truetype'); /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
  font-weight: normal;
  font-style: normal
}

/* 定義使用iconfont的樣式 */
[class^="icon-font-"] {
  font-family: "iconfont" !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  vertical-align: baseline;
  display: inline-block;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 挑選相應(yīng)圖標(biāo)并獲取字體編碼,起個(gè)類名賦值給他的content */
i.icon-font-home:before {content: '\1001'}
  • 定義好之后就可以在頁面中使用了
<i class="icon-font-home"></i>

整合elementUI

  • 有的項(xiàng)目需要fork elementUI的樣式文件渣淳,修改成自己項(xiàng)目的風(fēng)格脾还,我們也可以把圖標(biāo)整合進(jìn)elementUI本身的字體文件中。先下載 elementUI的樣式文件入愧,解壓之后把文件夾中的src文件夾改個(gè)名字theme鄙漏,放入/src/element,再修改main.js之前引入的element樣式文件路徑為import './element/theme/index.scss'

  • 然后重啟項(xiàng)目砂客,這時(shí)你可能會(huì)發(fā)現(xiàn)報(bào)錯(cuò)了泥张!

This relative module was not found:
* ./element/theme/index.scss in ./src/main.js
  • 居然說找不到模塊,老子路徑明明沒錯(cuò)鞠值!莫慌媚创,其實(shí)是你的項(xiàng)目解析不了scss文件,如果你使用的是webpack4.0+彤恶,只需要安裝一下sass就解決了钞钙,連寫配置都省了
// 在項(xiàng)目下,運(yùn)行下列命令行
npm install --save-dev sass-loader
// 因?yàn)閟ass-loader依賴于node-sass声离,所以還要安裝node-sass
npm install --save-dev node-sass
  • 下面就可以開始修改字體文件了芒炼,把UI給你的svg添加到elementUI的字體文件中,步驟參照上面說過的 第二次添加圖標(biāo) 术徊,把需要修改的/src/element/theme/fonts/element-icons.ttf拖入熊貓本刽,添加svg后生成新的字體文件,并用新生成的字體文件改名后替換element原來的那兩個(gè)字體文件

  • 最后一步赠涮,在/src/element/theme/icon.scss中配置一下剛才導(dǎo)入的圖標(biāo)就可以用了
    注意:類名前綴必須是'.el-icon-'

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末子寓,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子笋除,更是在濱河造成了極大的恐慌斜友,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件垃它,死亡現(xiàn)場(chǎng)離奇詭異鲜屏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)国拇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門洛史,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人贝奇,你說我怎么就攤上這事虹菲。” “怎么了掉瞳?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵毕源,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我陕习,道長(zhǎng)霎褐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任该镣,我火速辦了婚禮冻璃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘损合。我一直安慰自己省艳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布嫁审。 她就那樣靜靜地躺著跋炕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪律适。 梳的紋絲不亂的頭發(fā)上辐烂,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音捂贿,去河邊找鬼纠修。 笑死,一個(gè)胖子當(dāng)著我的面吹牛厂僧,可吹牛的內(nèi)容都是我干的扣草。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼颜屠,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼辰妙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起汽纤,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤上岗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蕴坪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肴掷,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年背传,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了呆瞻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡径玖,死狀恐怖痴脾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情梳星,我是刑警寧澤赞赖,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布滚朵,位于F島的核電站,受9級(jí)特大地震影響前域,放射性物質(zhì)發(fā)生泄漏辕近。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一匿垄、第九天 我趴在偏房一處隱蔽的房頂上張望移宅。 院中可真熱鬧,春花似錦椿疗、人聲如沸漏峰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浅乔。三九已至,卻和暖如春痒蓬,著一層夾襖步出監(jiān)牢的瞬間童擎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工攻晒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留顾复,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓鲁捏,卻偏偏與公主長(zhǎng)得像芯砸,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子给梅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容