淺談SVG Sprite

發表於2016-03-06

隨著前端技術的發展,有越來越多的方法實現icon的製作,同時為了滿足市面上各種大螢幕解析度,字型圖示icon font應運而生,字型圖示的製作也是一種全新的設計方式,但是icon font 在windows系統下,字型較小時,鋸齒問題比較嚴重,那麼今天要講的svg sprite,不僅可以隨意改變圖示大小不會產生鋸齒,還能隨心所欲的填充顏色。

下面來來介紹一下向量圖形SVG Sprite在頁面中的應用。

第一步:製作SVG圖示
首先的準備一套SVG圖示,我們直接到icomoon.io上下載。

1.選中圖示

1

2.點選Generate

2

3.下載

3

然後我們可以在解壓檔案中,找到對應的svg圖示資料夾。

4 5

第二步:合併SVG圖示
準備好svg圖示後,我們需要把多個svg圖示整合到一個svg檔案中。
這裡需要用到自動化合並工具(grunt),grunt有個名為svgstore的外掛。
關於grunt環境的安裝,就不在這闡述 。

環境安裝好後,在專案目錄下執行下面的命令,安裝外掛:

6

安裝好後,可以看到grunt-svgstore資料夾裡有個Gruntfiles.js配置檔案。
我們加入以下兩段程式碼:

7

8

瞭解更多配置項:https://www.npmjs.com/package/grunt-svgstore

配置好以後,我們需要把第一步下載下來的svg圖示,放到sprites資料夾中,如下圖:

9

到這為止,一切準備就緒,只需進入到 grunt-svgstore目錄,執行命令:

10

執行命令後,可以看到成功建立了sprite.svg檔案

11

第三步:應用

我們來看下生成檔案的原始碼:

12

再來看看瀏覽器裡頁面的效果~~~

13

到這裡svg sprite 圖示就已經完成了。

相容性:

14

對於ie8以下,我們可以新增一個標籤,使用css sprite:

為避免其他瀏覽器載入,可以加上條件註釋。

15

這樣就完美啦~