网页引入svg图片的4种方式

晴空闲云
• 阅读 2137

web应用开发使用svg图片,总结了下,可以有如下4种方式:

1. 直接插入页面。
2. img标签引入。
3. css引入。
4. object标签引入。

1. 直接插入页面

在html页面,可以直接使用svg标签。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <!-- 一个svg图片 -->
        <svg width="200" height="150" style="border: 1px solid steelblue">
            <!-- 里面有一个矩形 -->
            <rect x="10" y="10" width="100" height="60" fill="skyblue"></rect>
        </svg>
    </body>
</html>

运行效果:

网页引入svg图片的4种方式

2. img标签引入

除了在网页里直接写svg标签,也可以通过img引入,就像引入jpeg、png图片一样。

1)新建svg图片

那么我们就要先新建一个svg图片文件,我们把上面直接写在网页里的svg拿来用:

<svg xmlns="http://www.w3.org/2000/svg" width="200" height="150">
    <rect x="10" y="10" width="100" height="60" fill="skyblue"></rect>
</svg>

这边内容有两点不一样:

1. 需要声明命名空间 xmlns 这个属性,命名空间可以本文尾部列出的参考资料。
2. 移除了原先写在 svg 标签上的样式,style="border: 1px solid steelblue"。

把内容保存到test.svg文件,这个就是一张图片文件了,可以尝试在浏览器打开看看。

2)使用img标签引入

假设test.svg和网页文件在同一个目录下:

<img src="test.svg" style="border: 1px solid steelblue" />

和引入jpeg、png类似,直接src属性设置图片路径即可,另外我们把原先在svg的样式移到了img标签这边。

运行效果和上面是一样的:

网页引入svg图片的4种方式

现在网上有很多svg做的图片,可以参考:https://www.iconfont.cn,一个不错的icon图标网站。

网页引入svg图片的4种方式

3. css引入

css引入就是把图片当成背景图引入:

<style type="text/css">
    .svg {
        width: 200px;
        height: 150px;
        border: 1px solid steelblue;
        background-image: url(test.svg); // 当成背景引入
    }
</style>
<div class="svg"></div>

4. object引入

和img引入类似,需要一个svg文件,然后用属性data引入:

<object data="test.svg" style="border: 1px solid steelblue"></object>

运行效果和上面类似,就不再贴图。

其他标签

其他标签如:embed、iframe标签虽然也可以引入,但是不推荐使用了,详情可以参考本文尾部列出的参考资料。

参考资料

  1. 命名空间:https://developer.mozilla.org/zh-CN/docs/Web/SVG/Namespaces_Crash_Course
  2. embed标签:https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/embed
  3. iframe标签:https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies
点赞
收藏
评论区
推荐文章
晴空闲云 晴空闲云
3年前
svg绘制六种基本形状
svg简介svg意为可缩放矢量图形(ScalableVectorGraphics),最大的特点就是伸缩不会失真。svg是用xml进行描述的,在前端方面现在应用越来越广泛,各大浏览器支持越来越好了。这边尝试记录一下用svg画各种形状。svg标签要使用svg,需要先引入svg标签:html其中:width表示图片的宽。height表示图片的高。画长
晴空闲云 晴空闲云
3年前
script使用integrity属性进行安全验证
script标签引入文件在html中,script标签可以通过src属性引入一个js文件,引入的js文件可以是本地的,也可以是远程的。1.引入本地文件开发环境一般多引入本地js文件。html2.引入远程文件部署到线上后,一般会分发到cdn,需要引入远程文件,形如:html只是引入远程文件存在一个问题,如果对应的文件被篡改了,那么可能会对用户造成影响。
Stella981 Stella981
3年前
H5中canvas和svg绘图方式介绍
在HTML5中包括了两种绘图方式,canvas和svg(矢量呈现),而与canvas不同的是,svg是一种XML标记语言,它既可以单独保存以“.svg”为后缀的文件在浏览器中打开显示,也支持建立svg标签直接嵌入在网页中显示,还可以通过<embedsrc"文件.svg"name"name自命"type"image/svgxml"height
Stella981 Stella981
3年前
SVG嵌入HTML
使用SVG文件<embed使用embed标签,将svg文件以媒体形式插入html。Coding<embedsrc"imooc.svg"width"1024"height"768"type"image/svgxml"pluginspage"http://www.adobe.com/svg/viewer/
Stella981 Stella981
3年前
JavaScript模块化
前言:模块化开发需求在JS早期,使用script标签引入JS,会造成以下问题:1.加载的时候阻塞网页渲染,引入JS越多,阻塞时间越长。2.容易污染全局变量。3.js文件存在依赖关系,加载必须有顺序。项目较大时,依赖会错综复杂。4.引入的JS文件过多,不美观,且不易于管理。一、CommonJS规范
Easter79 Easter79
3年前
SVG嵌入HTML
使用SVG文件<embed使用embed标签,将svg文件以媒体形式插入html。Coding<embedsrc"imooc.svg"width"1024"height"768"type"image/svgxml"pluginspage"http://www.adobe.com/svg/viewer/
Easter79 Easter79
3年前
SVG之文本
一、文本标签<text  SVG支持直接对文本进行操作,如果我们需要在SVG中使用文本,那么我们需要使用到<text标签。直接看一个简单的demo。1<!DOCTYPEhtml2<html3<head4<meta
Stella981 Stella981
3年前
SVG之文本
一、文本标签<text  SVG支持直接对文本进行操作,如果我们需要在SVG中使用文本,那么我们需要使用到<text标签。直接看一个简单的demo。1<!DOCTYPEhtml2<html3<head4<meta
Wesley13 Wesley13
3年前
HTML图片标签
<body<!使用img标签来向网页中引入外部的图片,img标签也是一个自结束标签属性:src:设置一个外部图片的路径alt:可以用来设置图片不能显示时,就会显示图
Stella981 Stella981
3年前
JavaScript模块化开发
1:发展历史早期的Javascript是作为浏览器的脚本语言,使用<script标签直接引入,没有所谓的模块化。也就是说如果我们需要一个js文件,我们就加一个<script标签,把需要的js引入进来。这种方式的特点在于:简单粗暴。但是当项目越来越大,依赖越来越多时可能就会出现问题,比如逻辑越来越混乱,页面也越复杂,然后可维护性就变
晴空闲云
晴空闲云
Lv1
男 · 软件工程师
专注计算机科学,阅读、思考、写作。
文章
26
粉丝
8
获赞
35