MENU
- 前言
- 直接在页面编写svg
- 使用img标签引入
- 通过css引入
- 使用object标签引入
- 在vue2+elementUi的若依框架中引入svg
- 其他标签
- 参考资料
前言
web应用开发使用svg图片的方式,有如下几种方式
1、直接在页面编写svg
2、使用img标签引入
3、通过css引入
4、使用object标签引入
直接在页面编写svg
在html页面直接使用svg标签编写。
<svg width="230" height="230" style="border: 1px solid steelblue;"> <!-- 里面有一个矩形 --> <rect x="5" y="5" width="220" height="220" fill="skyblue"></rect> </svg>
使用img标签引入
除了在网页里直接写svg标签,也可以通过img引入,就像引入jpeg、png图片一样。
1、新建svg图片文件
新建一个svg图片文件,文件名称为
test.svg
这边内容有两点不一样
1)需要声明命名空间xmlns这个属性,在本文最后会列出命名空间的参考资料。
2)移除了原先写在svg标签上的样式,style="border: 1px solid steelblue"
。<svg xmlns="http://www.w3.org/2000/svg" width="230" height="230"> <rect x="5" y="5" width="220" height="220" fill="skyblue"></rect> </svg>
2、使用img标签引入
假设
test.svg
和网页文件在同一个目录下<img src="test.svg" style="border: 1px solid steelblue;" /> <img src="test.svg" style="width: 100px; height: 100px;border: 1px solid steelblue;" alt="SVG Image" />
和引入jpeg、png类似,直接src属性设置图片路径即可,另外原先在svg的样式移到了img标签上。
img引入的svg设置宽高不会被裁剪,而是等比缩放。
阿里巴巴尺量图库是一个不错的icon图标网站。
通过css引入
css引入就是把图片当成背景图引入
必须设置宽高哦,否则没有效果<div style="width: 230px; height: 230px; border: 1px solid steelblue; background-image: url(test.svg);"></div>
使用object标签引入
object标签引入和img引入类似,需要一个svg文件,文件绑定在data属性上。
运行效果和上面类似,就不再贴图。<object data="test.svg" style="border: 1px solid steelblue;"></object>
在vue2+elementUi的若依框架中引入svg
1、文件名
delete
2、设置宽高等比缩放,不会被裁减
3、也尝试使用img标签来实现,但是在若依框架中始终不起作用,被迫使用svg来实现<svg aria-hidden="true" class="w_20 h_20 c_p" @click.stop="handleDeleteImg(i)" > <use xlink:href="#icon-delete"></use> </svg>
其他标签
embed、iframe标签虽然也可以引入,但是不推荐使用,详情可以参考本文尾部列出的参考资料。
参考资料
1、命名空间
2、embed标签
3、iframe标签