成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

iconfont實踐小結(jié)

bitkylin / 1044人閱讀

摘要:所以實現(xiàn)小圖標(biāo)時雪碧圖跟圖標(biāo)字體會在一個網(wǎng)站共存,自定義圖標(biāo)字體為什么比較耗時,且太復(fù)雜圖標(biāo)無法實現(xiàn)請往下看開發(fā)流程就了解了。參考資料細(xì)談淺談圖標(biāo)字體向下兼容優(yōu)雅降級技術(shù)繪制小圖標(biāo)技巧雪碧圖圖標(biāo)字體矢量小圖標(biāo)設(shè)計本文對應(yīng)源碼源碼地址演示地址

之前寫了一篇關(guān)于雪碧圖的博文, 評論里有說用http2、或用SVG也有說用圖標(biāo)字體代替,大家知識面是挺廣,但深入了解技術(shù)點的似乎卻不多,否則不會有雪碧圖過時無用,用http2或圖標(biāo)字體取代就好了的想法;http2后續(xù)有時間再寫一篇個人實踐、理解博文, 本文主要講圖標(biāo)字體(iconfont)技術(shù)點,從實踐開發(fā)角度講述個人對圖標(biāo)字體的理解。

一.iconfont使用場景(優(yōu)缺點);

一般我們項目決定要使用一個技術(shù)點前,會查相關(guān)資料對其有大概的理解。例如, 這次要使用iconfont實現(xiàn)功能, 理解相關(guān)資料后歸納、總結(jié)出它的優(yōu)、缺點以及它的使用場景。

圖標(biāo)字體優(yōu)、缺點:

1.優(yōu)點;

輕量(文件體積?。?、靈活(樣式可改變圖標(biāo))、兼容性好(IE8+)。

2.缺點;

圖標(biāo)只能單色調(diào)(太復(fù)雜的多色圖標(biāo)無法實現(xiàn))、生成圖標(biāo)字體相對花時間。

跟webfont一樣iconfont實現(xiàn)的關(guān)鍵代碼是“@font-face”(細(xì)談CSS@font face)查看其瀏覽器兼容信息為IE8+:

低版本瀏覽器其實也有方法兼容,icoMoon是圖標(biāo)字體開發(fā)時生成字體文件及demo的網(wǎng)站,用過icoMoon的同學(xué)都知道其有一個“Support IE 7”選項, icoMoon IE7支持實現(xiàn)原理:樣式上用*zoom 觸發(fā)重繪(觸發(fā)haslayout), 腳本上檢測 關(guān)鍵字className動態(tài)插入dom節(jié)點實現(xiàn);考慮到IE7目前的市場份額,以及該方式帶來的性能消耗,本人不建議去兼容。

另外,圖標(biāo)只能單色調(diào)這個問題也有辦法解決,阿里巴巴iconfont+ 也是圖標(biāo)字體開發(fā)時生成字體文件及demo的網(wǎng)站;阿里巴巴iconfont+ 生成的demo可以解決圖標(biāo)單色調(diào)問題,其原理是 生成svg合集, 然后使用svg呈現(xiàn)圖標(biāo)。但該方式兼容性較差(SVG兼容小結(jié)), 如是移動端開發(fā)不考慮低版本瀏覽器兼容問題可以嘗試該方式。

根據(jù)以上圖標(biāo)字體的優(yōu)缺點, 個人總結(jié)的使用場景如下:

1.web app(H5) 小圖標(biāo) 放大失真問題解決;

移動頁面大多數(shù)情況沒辦法用雪碧圖,用了雪碧圖表示圖片大小固定了,而移動端需要兼容不同屏幕大小的移動設(shè)備,這就需要圖片是可以根據(jù)屏幕尺寸而改變的。 如果你的圖尺寸是固定的,那就可以用雪碧圖。

2.PC端小圖標(biāo)性能更佳、小圖標(biāo)尺寸修改不用改原圖;

PC端頁面優(yōu)化,可將部分雪碧圖換成小圖標(biāo),字體圖標(biāo)比雪碧圖的http請求少、體積?。唬虞d一個頁面時分模塊開發(fā)關(guān)系可能有多張雪碧圖,但使用字體圖標(biāo),文件一個就夠)

PC端做換膚業(yè)務(wù)時,使用了字體圖標(biāo)實現(xiàn)起來更加的優(yōu)雅、方便。(之前做頁面換皮膚功能時發(fā)現(xiàn)換膚時小圖標(biāo)得多出一套雪碧圖略麻煩, 如果是字體圖標(biāo)直接更新顏色樣式就OK)

知乎、斗魚、Bilibili這類網(wǎng)站不少地方使用了雪碧圖,如果我們維護(hù)這類網(wǎng)站,能用圖標(biāo)字體替換么?

從兩方面考慮:

1.開發(fā)時間成本問題, 使用自定義圖標(biāo)字體替換雪碧圖需要一定時間,如果要求快速更新小圖標(biāo)建議維持用雪碧圖;

2.字體小圖標(biāo)兼容、單調(diào)色問題, 如果網(wǎng)站需要兼容低版本瀏覽器、且圖標(biāo)復(fù)雜、或者多色那還是得用雪碧圖。



所以實現(xiàn)小圖標(biāo)時雪碧圖 跟 圖標(biāo)字體會在一個網(wǎng)站共存,自定義圖標(biāo)字體 為什么比較耗時,且太復(fù)雜圖標(biāo)無法實現(xiàn)?請往下看iconfont開發(fā)流程就了解了。

二.iconfont開發(fā)流程;

接下來就是本文篇幅最大的章節(jié), 我將從自己實現(xiàn)圖標(biāo)字體小demo上詳細(xì)的列出所有步驟。

使用免費圖標(biāo)字體:

如果網(wǎng)站使用的不是自定義的圖標(biāo)字體,而是網(wǎng)上開源的免費圖標(biāo)那實現(xiàn)上將非常的簡單;

例如, 我要使用阿里巴巴iconfont+ 上的圖標(biāo)字體, 進(jìn)入網(wǎng)站并登陸(可以用github賬號登錄),從圖標(biāo)庫選取自己喜歡的圖標(biāo):

這里我選取了三個小圖標(biāo),點擊右上角購物車,將選取的圖標(biāo)添加到新建項目,然后點選“下載至本地”:

下載下來的壓縮包就包括了 三小圖標(biāo)字體文件, 以及三種實現(xiàn)方式的demo;

下載圖標(biāo)字體的三種用法,打開對應(yīng)html(demo_fontclass.html、demo_symbol.html、demo_unicode.html)文件即可了解(也可直接打開我demo里的這三個文件查看用法,所以用法這里不冗述了);有4個字體文件(EOT/SVG/TTF/WOFF)是為了兼容所有瀏覽器,因為不同瀏覽器對字體格式兼容是不一樣的:

使用自定義圖標(biāo)字體:

實際開發(fā)中基本都是使用自定義生成的圖標(biāo)字體,大致步驟如下:

1)使用PS-矩形工具 生成圖標(biāo);

2)AI軟件打開PSD文件,F(xiàn)ile->Scripts->SaveDocsAsSVG 生成SVG文件;

3)訪問阿里巴巴iconfont+(或iconMoon)上傳SVG生成字體文件;

PS: 教程雪碧圖vs圖標(biāo)字體 中多了PS導(dǎo)出AI文件的步驟,經(jīng)實踐PS生成的AI文件打開容易顯示空白,且AI軟件可直接打開PSD文件,該步驟可省略.

其實生成自定義圖標(biāo)字體一般交給設(shè)計部同事完成(可能設(shè)計同事是用Sketch而不是PS生成小圖標(biāo)), 因為要了解整個流程細(xì)節(jié),所以請教了設(shè)計部同事生成自定義圖標(biāo)字體的技巧跟方法; 這里就分享下生成自定義圖標(biāo)字體的具體流程:

首先,下載生成小圖標(biāo)的軟件: PS(Photoshop)、AI(Adobe Illustrator);

PS下載地址:mac 版、windows版

AI下載地址:mac 版、windows版

1)使用PS-矩形工具 生成圖標(biāo);

預(yù)計demo功能: 三個小圖標(biāo):笑臉、黑臉、帽子; 默認(rèn)顯示笑臉+帽子,鼠標(biāo)hover,變成黑臉+帽子(顏色變綠);

將要實現(xiàn)的小demo將有三個小圖標(biāo), 接下來就使用PS生成這三個小圖標(biāo);

無論是用Sketch還是Photoshop繪制小圖標(biāo)的思路都差不多,使用各種基本圖形相加相減得到想要的小圖標(biāo);所以太復(fù)雜的圖形實現(xiàn)起來會耗時甚至無法實現(xiàn)。(PS矢量小圖標(biāo)制作、Sketch小圖標(biāo)制作技巧)

笑臉PSD:

使用PS新建165px 124px 圖層, 使用 “圓角矩形工具”創(chuàng)建100px100px的圓(顏色#666):

繼續(xù)用 “圓角矩形工具”繪制小圖標(biāo)的眼睛(為了直觀可改成白色):

ctrl+e(command+e) 合并形狀并選擇“排除重疊形狀”:

小圖標(biāo)的嘴巴有點復(fù)雜,使用鋼筆工具或使用兩個圓形相減(“排除重疊形狀” )+矩形工具(“與形狀區(qū)域相交”)生成嘴巴:

然后 ctrl+e(command+e) 合并形狀并選擇“排除重疊形狀”生成笑臉

黑臉PSD:

與笑臉PSD一樣流程, 只把嘴巴旋轉(zhuǎn)180度就行:

帽子PSD:
使用PS新建165px 124px 圖層, 使用 “橢圓工具”創(chuàng)建150px20px的橢圓(顏色#666),然后畫一個90px*110px的橢圓:

在第二個橢圓圖層使用矩形工具(“減去頂層形狀”)刪減該橢圓內(nèi)容然后與第一個橢圓 ctrl+e(command+e) 合并形狀:

2)AI軟件打開PSD文件,F(xiàn)ile->Scripts->SaveDocsAsSVG 生成SVG文件;

生成三個小圖標(biāo)的PSD后,我們使用AI軟件打開三個文件, 然后分別處理生成SVG文件:


3)訪問阿里巴巴iconfont+(或iconMoon)上傳SVG生成字體文件;

將上述步驟生成的SVG文件在阿里巴巴iconfont+中上傳,然后這幾個小圖標(biāo)就在“我上傳的icon”中:




將圖標(biāo)添加入庫, 然后添加到項目, 最后就能下載字體及demo到本地了:



字體文件下載好后, 就能輕松實現(xiàn)我的小demo:

小demo演示地址;

三.iconfont實踐注意事項.

1.生成圖標(biāo)字體注意事項;

截圖來自阿里巴巴iconfont+;

更多生成圖標(biāo)字體注意點,請閱讀參考資料中《雪碧圖vs圖標(biāo)字體》->如何制作圖標(biāo)字體;

2.使用圖標(biāo)字體注意事項;

跨域問題

1)配置自己的服務(wù)器;

# For Apache

Header set Access-Control-Allow-Origin "*"

# For nginx
location ~* .(eot|ttf|woff)$ {
add_header Access-Control-Allow-Origin *;
}

2)放在同一個域;

3)使用base64置入CSS中(Icomoon在導(dǎo)出圖標(biāo)時,設(shè)置里勾選Encode & Embed Font in CSS選項,IE8+支持base64)。

字體圖標(biāo)出現(xiàn)鋸齒的問題

-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;

@font-face與性能問題

1)只在你確定你非常需要 @font-face的時候才使用它;

2)將你的@font-face定義在所有的script標(biāo)簽前;

3)如果你有許多字體文件,考慮將它們分散到幾個域名下;

4)不要包含沒有使用的 @font-face聲明——IE將不分它使用與否,通通加載;

5)Gzip字體文件,同時給它們一個未來的過期頭部聲明;

6)考慮字體文件的后加載,起碼對于IE。

--以上使用圖標(biāo)字體注意事項來源《淺談圖標(biāo)字體》;

關(guān)于字體文件跨域可能是大家最關(guān)心的問題, 三種解決跨域的方式中base64至入CSS是比較主流的做法,例如?小米官網(wǎng)?的小圖標(biāo)就是用base64至入CSS中實現(xiàn)。

Icomoon在導(dǎo)出圖標(biāo)時,設(shè)置里勾選Encode & Embed Font in CSS選項

目前 Icomoon 勾選生成base64樣式會出現(xiàn)收費的問題,那目前實現(xiàn)base64至入CSS有哪些方式呢?
1.使用在線 網(wǎng)站將字體文件 生成base64樣式;
百度關(guān)鍵字“圖標(biāo)字體轉(zhuǎn)base64”能找到不少, 這里推薦?轉(zhuǎn)base64在線工具?;

在線工具要求源文件不能大于100K,如果文件過大可以考慮本地構(gòu)件工具;

2.使用webpack、gulp等構(gòu)件工具在本地將字體文件轉(zhuǎn)成base64樣式;
本demo使用?gulp base64?實現(xiàn)轉(zhuǎn)換:

PS: 本demo的“base64”指令 配置的有點粗糙, 如果在生產(chǎn)中會考慮 接受參數(shù) 以及 自動將生成的樣式合并到 指定樣式文件等,大家可以查看?gulp base64?官網(wǎng)了解更詳細(xì)的使用方法。

參考資料:

細(xì)談CSS@font face;

淺談圖標(biāo)字體;

SVG向下兼容優(yōu)雅降級技術(shù);

Sketch 繪制小圖標(biāo)技巧;

雪碧圖vs圖標(biāo)字體;

PS矢量小圖標(biāo)設(shè)計;

本文對應(yīng)源碼:

github源碼地址;

demo演示地址;

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/112300.html

相關(guān)文章

  • CSS 小結(jié)筆記之圖標(biāo)字體(IconFont

    摘要:本篇主要介紹一種非常好用的圖標(biāo)大法圖標(biāo)字體。圖標(biāo)字體可以非常便捷的去解決以上問題,使用起來也非常簡單。并且改變圖標(biāo)大小只需要改變字體大小就可以了?! ”酒饕榻B一種非常好用的圖標(biāo)大法——圖標(biāo)字體(IconFont)。   什么是圖標(biāo)字體?顧名思義,它是一種字體,只不過這個字體顯示的并不是具體的文字之類的,而是各種圖標(biāo)。   網(wǎng)站上經(jīng)常會用到各種圖標(biāo),之前網(wǎng)頁上使用圖...

    番茄西紅柿 評論0 收藏0
  • 我的前端規(guī)范系列-圖標(biāo)工程化[好用的圖標(biāo)]

    摘要:能快速修改和得到想要的圖標(biāo)圖標(biāo)命名規(guī)范化后編程人員可以很快配合找到想要的圖標(biāo)。圖標(biāo)設(shè)計規(guī)范圖標(biāo)要有重心根據(jù)不同的圖標(biāo)形狀類型使用不同的輪廓線,可以使圖標(biāo)之間保持一致的視覺效果。 為什么要有圖標(biāo)規(guī)范 1.文字和圖標(biāo)能更好的搭配使用圖標(biāo)是具有指代意義的圖形,也是一種標(biāo)識,即文字的一種延展,實際應(yīng)用中也常與文字一起配合使用,按字體標(biāo)準(zhǔn)規(guī)范化設(shè)計的圖標(biāo)更容易對齊。2.圖標(biāo)適配變得更簡單,圖標(biāo)風(fēng)...

    shengguo 評論0 收藏0
  • 我的前端規(guī)范系列-圖標(biāo)工程化[好用的圖標(biāo)]

    摘要:能快速修改和得到想要的圖標(biāo)圖標(biāo)命名規(guī)范化后編程人員可以很快配合找到想要的圖標(biāo)。圖標(biāo)設(shè)計規(guī)范圖標(biāo)要有重心根據(jù)不同的圖標(biāo)形狀類型使用不同的輪廓線,可以使圖標(biāo)之間保持一致的視覺效果。 為什么要有圖標(biāo)規(guī)范 1.文字和圖標(biāo)能更好的搭配使用圖標(biāo)是具有指代意義的圖形,也是一種標(biāo)識,即文字的一種延展,實際應(yīng)用中也常與文字一起配合使用,按字體標(biāo)準(zhǔn)規(guī)范化設(shè)計的圖標(biāo)更容易對齊。2.圖標(biāo)適配變得更簡單,圖標(biāo)風(fēng)...

    KunMinX 評論0 收藏0
  • 「輕算賬」小程序實踐筆記

    摘要:資源開發(fā)文檔是一套完全免費的微信小程序開發(fā)框架,擴(kuò)展了小程序的能力。推薦有一些不錯的解決方案封裝封裝跨頁面事件通訊監(jiān)聽數(shù)據(jù)變化開發(fā)如何在微信小程序的頁面間傳遞數(shù)據(jù)需要時可以快速過一遍。微信小程序回調(diào),,,的使用例子供參考 這篇文章主要記錄我做小程序「輕算賬」過程中遇到的一些問題和解決方案,就當(dāng)是做個總結(jié),也希望其中有能夠幫助到他人的信息。 showImg(https://segment...

    BigTomato 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<