svg sprite

2016-03-04  本文已影响592人  daoyidao

概述

SVG(Scalable Vector Graphics)是一种矢量图格式。Adobe Illustrator是专门编辑、制作矢量图的软件。

随着高清视网膜屏幕的出现,Web设计需要根据屏幕输出不同分辨率的图片。在开发中需要准备两套不同的图片应对,一套在普通屏幕上显示;一套在高清屏幕上显示。

现在流行的icon font字体图标,其实质上是SVG的封装。

SVG的优势

Adobe Illustrator

Adobe Illustrator能直接把文件保存成SVG格式:

1-1保存-选择SVG(svg) 1-2格式类型选择 SVG 1.1

浏览器支持

浏览器支持统计

在所有浏览器中支持,可以采用以下方式:David Bushell

SVG的使用

首先使用<symbol>方式,将SVG文件组装起来。注意每个<symbol>都必须有唯一的id。
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="circle-cross" viewBox="0 0 32 32">
<title>circle-cross icon</title>
<path d="M16 1.333q2.99 0 5.703 1.161t4.677 3.125 3.125 4.677 1.161 5.703-1.161 5.703-3.125 4.677-4.677 3.125-5.703 1.161-5.703-1.161-4.677-3.125-3.125-4.677-1.161-5.703 1.161-5.703 3.125-4.677 4.677-3.125 5.703-1.161zm0 2.667q-2.438 0-4.661.953t-3.828 2.557-2.557 3.828-.953 4.661.953 4.661 2.557 3.828 3.828 2.557 4.661.953 4.661-.953 3.828-2.557 2.557-3.828.953-4.661-.953-4.661-2.557-3.828-3.828-2.557-4.661-.953zm3.771 6.885q.552 0 .948.391t.396.943-.396.948l-2.833 2.833 2.833 2.823q.396.396.396.938 0 .552-.396.943t-.948.391-.938-.385l-2.833-2.823-2.823 2.823q-.385.385-.948.385-.552 0-.943-.385t-.391-.938q0-.563.385-.948l2.833-2.823-2.833-2.833q-.385-.385-.385-.938t.391-.948.943-.396.948.396l2.823 2.833 2.833-2.833q.396-.396.938-.396z"/>
</symbol>
<symbol id="circle-check" viewBox="0 0 32 32">
<title>circle-check icon</title>
<path d="M16 1.333q2.99 0 5.703 1.161t4.677 3.125 3.125 4.677 1.161 5.703-1.161 5.703-3.125 4.677-4.677 3.125-5.703 1.161-5.703-1.161-4.677-3.125-3.125-4.677-1.161-5.703 1.161-5.703 3.125-4.677 4.677-3.125 5.703-1.161zm0 2.667q-2.438 0-4.661.953t-3.828 2.557-2.557 3.828-.953 4.661.953 4.661 2.557 3.828 3.828 2.557 4.661.953 4.661-.953 3.828-2.557 2.557-3.828.953-4.661-.953-4.661-2.557-3.828-3.828-2.557-4.661-.953zm4.49 7.99q.552 0 .943.391t.391.943-.396.948l-5.656 5.656q-.385.385-.938.385-.563 0-.948-.385l-2.833-2.823q-.385-.385-.385-.948 0-.552.391-.943t.943-.391.948.396l1.885 1.885 4.708-4.719q.396-.396.948-.396z"/>
</symbol>

</svg>

1.  将SVG的XML文档插入到HTML中,直接用id引用icon:
        <svg class="icon">
            <use xlink:href="#circle-cross"></use>
        </svg>

2.  使用外部链接文件的形式引用icon:
        <svg class="icon">
            <use xlink:href:"/asssets/svg-symbols.svg#circle-cross"></use>
        </svg>

3.  支持fallback:
         <svg class="icon" viewBox="0 0 50 41"> 
            <switch> 
                <use xlink:href="#twitter-icon"></use>     
                <foreignObject> 
                    <img class="icon" src="img/twitter-icon.png" alt="Twitter"> 
                </foreignObject> 
            </switch> 
        </svg>

自动合并生成工具gulp-svg-symbols

参考文章

上一篇 下一篇

猜你喜欢

热点阅读