有没有办法将源添加到svg元素

时间:2017-09-07 16:48:40

标签: html html5 svg

我正在寻找类似的东西:

<img src="./img.svg"/>

但使用 svg 元素。

这不起作用:

<svg src="./img.svg"></svg>

编辑:

问题在于我有两种情况,首先我有svg的路径,第二种情况我在字符串中有一个svg的内容。我想为它们使用相同的包装元素,以便更容易样式,而不是同时使用img和svg元素。有没有办法为它们使用img或svg元素?

3 个答案:

答案 0 :(得分:1)

<image xlink:href="./img.svg" width="..." height="..." />
必须设置

widthheight,svg没有固有大小的概念。对于XML一致性,不要忘记声明xlink命名空间:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" ... >

答案 1 :(得分:1)

SVG不使用源,因为它们在标记内包含图形信息,而不是引用文件。这段代码:

<svg src="./img.svg"></svg>

是多余的,因为您正在引用带有SVG标记的SVG文件,因此它不会以HTML格式呈现。你应该使用&lt; img&gt;标记为源的.svg文件或将SVG转换为&lt; svg&gt;包含图形信息的标签。

如果缩放&lt; img&gt;用CSS标记它的行为就像一个SVG。我主要使用这种格式:

<img src="./img.svg"></img>

如果我只是调整图像大小。我会用&lt; svg&gt;如果你想做特定于图像矢量的样式(颜色,路径等)

https://www.w3schools.com/html/html5_svg.asp

答案 2 :(得分:1)

<img>标记可以指向外部文件,但也可以指向a data URI

数据URI只是一个图像,作为在base64或URI中编码的字符串(除了你需要将#字符编码为%23之外,它几乎是一个字符串)。基本上它看起来像这样......

<img src='data:image/svg+xml;utf8,<svg ... > ... </svg>'>