前端開(kāi)發(fā)中關(guān)于icon 使用的總結(jié)

?解決方案:

1. Css sprite 雪碧圖,也稱(chēng)為css精靈圖

2. Icon font 圖標(biāo)字體

3. Data URI scheme

實(shí)現(xiàn)原理:

雪碧圖: ? 它的基本原理是將網(wǎng)站中的所有的圖標(biāo)圖片整合到一張圖片中,該圖片使用css 中的width,height,background屬性和background-position屬性來(lái)渲染網(wǎng)站中請(qǐng)求頁(yè)面中的圖標(biāo)。

Icon font: ?它的基本原理自定義一種字體,將不同的字配置作為icon圖案,然后通過(guò)css嵌入其中使用。

?DataURI scheme: ? ?Data URI scheme是在RFC2397中定義的,將一些小的數(shù)據(jù),直接嵌入到網(wǎng)頁(yè)中,從而不用再?gòu)耐獠课募d入

優(yōu)勢(shì)&劣勢(shì)

雪碧圖

優(yōu)勢(shì)

1. 加快網(wǎng)頁(yè)加載速度

2. 能減少圖片的字節(jié)數(shù)

3. 解決了前端工程師的命名問(wèn)題

4. 便于后期維護(hù),更換方便

5. 可以避免鼠標(biāo)滑過(guò)的一些bug(IE6)

劣勢(shì)

1. 占據(jù)內(nèi)存(大量無(wú)用的空白)

2. 雪碧圖拼圖制作麻煩,

3. 影響瀏覽器的縮放功能

4. 雪碧圖調(diào)用的圖片不能被打印,除非在@media中特殊說(shuō)明

5. 為了減少 HTTP 請(qǐng)求數(shù)(這是使用 CSS Sprite 一直強(qiáng)調(diào)的好處),然而把所有的圖片都當(dāng)背景圖片來(lái)處理,尤其是那些傳達(dá)重要信息的圖片,將會(huì)導(dǎo)致一個(gè)網(wǎng)站缺乏可訪問(wèn)性的問(wèn)題,也會(huì)降低 HTML 中 title 和 alt 潛在的好處。其實(shí),CSS sprite 本身并不會(huì)出錯(cuò),也不會(huì)引發(fā)可訪問(wèn)性問(wèn)題(事實(shí)上,正確得使用會(huì)提高可訪問(wèn)性)。

不適合使用雪碧圖的場(chǎng)景

1. 網(wǎng)絡(luò)環(huán)境比較差

2. 移動(dòng)頁(yè)面夜間模式下

?ICON font

優(yōu)勢(shì)

1. 很好的解決了響應(yīng)式設(shè)計(jì)中圖形無(wú)損自適應(yīng)的問(wèn)題,可以通過(guò)font-size和color屬性來(lái)控制icon的大小和顏色

2. 體積小,可以無(wú)限拉伸

?劣勢(shì)

1. 樣式單一、顏色單一

2. 有少量的移動(dòng)設(shè)備可能會(huì)和icon fonts的字符編碼沖突,導(dǎo)致icon顯示不正常

3. 跨域問(wèn)題

4. 文字圖片的大小設(shè)置

5. 10p以下的字體chrome瀏覽器顯示12px

Data URI scheme

優(yōu)勢(shì)

使用一個(gè)data uri scheme

劣勢(shì)

瀏覽器使用的過(guò)程中不會(huì)緩存該圖片

?參考資料:

?Sprite

http://www.cnblogs.com/hustskyking/archive/2015/08/17/iconfont-opt.html

http://www.cnblogs.com/demix/archive/2009/11/28/1612715.html

https://segmentfault.com/q/1010000000407231

http://ntx.me/2015/05/21/IconFont/

https://think2011.net/2017/03/31/css-sprite/

Iconfont

http://www.cnblogs.com/hustskyking/archive/2015/08/17/iconfont-opt.html

http://www.cnblogs.com/demix/archive/2009/11/28/1612715.html

https://segmentfault.com/q/1010000000407231

http://ntx.me/2015/05/21/IconFont/

Data URI scheme

Data URI中,data表示取得數(shù)據(jù)的協(xié)定名稱(chēng),image/png 是數(shù)據(jù)類(lèi)型名稱(chēng),base64 是數(shù)據(jù)的編碼方法,逗號(hào)后面就是這個(gè)image/png文件base64編碼后的數(shù)據(jù)。

Data URI scheme支持的類(lèi)型有:

data: ,文本數(shù)據(jù)

data:text/plain,文本數(shù)據(jù)

data:text/html,HTML代碼

data:text/html;base64,base64編碼的HTML代碼

data:text/css,CSS代碼

data:text/css;base64,base64編碼的CSS代碼

data:text/javascript,Javascript代碼

data:text/javascript;base64,base64編碼的Javascript代碼

data:image/gif;base64,base64編碼的gif圖片數(shù)據(jù)

data:image/png;base64,base64編碼的png圖片數(shù)據(jù)

data:image/jpeg;base64,base64編碼的jpeg圖片數(shù)據(jù)

data:image/x-icon;base64,base64編碼的icon圖片數(shù)據(jù)

http://blog.csdn.net/c_mihoo/article/details/12774719

https://isux.tencent.com/understand-data-uri-performance.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容