關於瀏覽器圖示解決方案,一直就有很多CSS Sprite,iconFont,以及SVG.相對而言svg向量圖示以及支援瀏覽器自身解析的優點,很多團隊都已經在使用了。這篇文章主要說明svg圖示的使用和製作。
svg的製作
步驟:
1、按照正常匯出圖片的方式匯出字尾為png的雪碧圖和單個icon,然後用AI
開啟該類檔案,然後直接匯出為svg
字尾的圖片即可
2、可以安裝壓縮工具,對svg
檔案進行壓縮
3、安裝svg
壓縮工具
npm install svgo -g
svgo xx.svg (可以將多餘的程式碼刪減掉)
複製程式碼
壓縮前的效果
壓縮後的效果(其實使用ai匯出的檔案已經是刪減後的了)
步驟:
檔案-->匯出-->匯出為-->svg字尾 (此方法匯出,可以減少svg的大小,相對於直接儲存的方式)
使用AI製作的svg可以直接使用,但是使用ps直接匯出的svg檔案,會使svg中的image標籤受損,在html中無法顯示
使用AI製作svg時,使用匯出字尾為svg的檔案,而不是儲存為svg的圖片
svg的使用
- 直接在img標籤中使用
<img src="qiy-icon1.svg"/>
複製程式碼
- 直接通過
background:url()
在css中引入
background:url("qiy-icon1.png");
background-size:100% 100%;
複製程式碼
也可以做成字尾為
svg
的雪碧圖,用法與png的雪碧圖一樣
svg的相容處理
在安卓4.2.2 版本上可以正常展示(所以業務中,不需要做降級處理)
降級寫法
<img src="qiy-icon1.svg" alt=""class="img" onerror="this.src=qiy-icon1.png">
background-image:url("qiy-icon1.png");
/*降級處理不能方便地使用CSS修改Icon的顏色和邊線屬性。*/
background-image:url("qiy-icon1.svg"),none;
background-size:100% 100%;
複製程式碼
svg與png的對比
- 單個圖片,大小接近相同
- 雪碧圖,svg比png的大,通過AI匯出的svg圖片,已經很小了,此時再通過svgo進行壓縮,也只壓縮了幾至十幾kb
多有不足,歡迎指正哦!!!