淺談雪碧圖和字體圖標

起因

現(xiàn)在是前端技術(shù)的大時代。若干年過去之后,也許我們會感慨很多,當年阿當?shù)囊黄┪亩嗝吹南?。vue和angular的鬧劇。最近臨危受命,要做幾天的前端開發(fā)。說是前端開發(fā),其實就是寫html+css+JavaScript,真的,當你面對龐大的前端技術(shù)體系無所適從的時候,用最簡單的技術(shù)來一場放松吧。

這一次開發(fā),沒有什么特別的,就是我在小圖標展示的時候。在雪碧圖和圖標字體中徘徊了很久。于是,簡單研究了一下,就當立一個flag,日后在深究一下。

雪碧圖

除了叫雪碧圖外,它還有很多名字,css sprite, css 精靈等。原理就是將一些小圖標合并到一張圖片上,然后用css的背景定位來顯示需要顯示的部分。

工具

sprite-generator

栗子:

圖片

image

定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css sprite</title>
    <style>
        .bg{
            background: url("css_sprites .png");
        }
        .bg-9 {
            width: 262px; height: 156px;
            background-position: -10px -10px;
        }

        .bg-10 {
            width: 246px; height: 150px;
            background-position: -292px -10px;
        }
    </style>
</head>
<body>
    <div class="bg bg-9"></div>
    <div class="bg bg-10"></div>
</body>
</html>

效果

image

優(yōu)點

  • 減少對服務(wù)器的請求次數(shù)比如頁面有五個圖標,把他們放到一張背景圖上,只需要加載一次。然后用css定位從這張圖片來取就可以了
  • 提高頁面的加載速度減少了頁面的請求次數(shù),自然會提高了頁面的加載速度

缺點

  • 維護麻煩,如果修改其中的一張圖,你需要修改整張圖。
  • 高清失真,為了適應(yīng)不同的分辨率,可能要準備多個規(guī)格的圖片。

圖標字體

可以縮放的矢量圖標。你可以使用CSS對它們進行修改:大小,顏色,陰影等。體積特別的小??赡軒装賯€圖標才幾十KB。

工具

iconfont是阿里提供一個矢量圖標庫。

fontawesome 國外一款優(yōu)秀的圖標庫,用bootstrap的都不陌生了。

栗子:

iconfontfontawesome官方都提供了很詳細的使用教程,這里不就不做贅述了。
簡單的寫了一個小demo??梢匀ズ唵蔚目匆幌隆?/p>

優(yōu)點

  • 高清保真,因為是SVG圖形。
  • 靈活性,可以設(shè)置大小,顏色等。
  • 兼容性好,支持IE6
  • 開源的字體庫很多
  • 減少HTTP請求

缺點

  • 維護自己的字體庫麻煩一些
  • 圖表字體只能被渲染為單色的

總結(jié)

這篇文章只是淺談了一些雪碧圖和圖標字體,沒有太過的深入,也算是一篇工具介紹吧。這兩種方式的出現(xiàn),都是為了減少HTTP請求次數(shù)。優(yōu)化和提升網(wǎng)頁的訪問速度。各有千秋。如果實際開發(fā)中,可以兩種方式結(jié)合著來。

小栗子

sprite-generator

iconfont

fontawesome

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

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

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