在svg图像上画一条线

时间:2011-07-06 23:35:32

标签: html css image svg draw

我如何画线而不是在svg图像下?

<html>
<head>
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
     <line x1="50" y1="0" x2="50" y2="1000" style="stroke:#006600; stroke-width:20"/>
</svg>
<img src="http://upload.wikimedia.org/wikipedia/commons/5/57/Weakness_of_Turing_test_1.svg"  type="image/svg+xml" pluginspage="http://www.adobe.com/svg/viewer/install/" />
</html>

您可以在此处运行代码:http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_div_test

编辑:有效的代码(至少在firefox上,对于safari,文件扩展名必须是.xhtml) -

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="7in" height="4in" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
     <image width="600px" height="400px" xlink:href="http://upload.wikimedia.org/wikipedia/commons/5/57/Weakness_of_Turing_test_1.svg"> </image>
     <line x1="50" y1="0" x2="500" y2="1000" style="stroke:#006600; stroke-width:15"/>
</svg>

3 个答案:

答案 0 :(得分:2)

您是否尝试将<svg>放在图片之后:

<html>
<head>
<img src="http://upload.wikimedia.org/wikipedia/commons/5/57/Weakness_of_Turing_test_1.svg"  type="image/svg+xml" pluginspage="http://www.adobe.com/svg/viewer/install/" />
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
     <line x1="50" y1="0" x2="50" y2="1000" style="stroke:#006600; stroke-width:20"/>
</svg>
</html>

答案 1 :(得分:2)

然后,您可能希望将图像包含在<svg>

<html>
<head>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <image xlink:href="http://upload.wikimedia.org/wikipedia/commons/5/57/Weakness_of_Turing_test_1.svg"  width="1000" height="1000" />
    <line x1="50" y1="0" x2="50" y2="1000" style="stroke:#006600; stroke-width:20"/>
</svg>
</html>

答案 2 :(得分:0)

为了让你在图像的顶部有一条线,它必须在dom之后。 SVG按照它在dom中找到的顺序呈现形状和图像。 请注意,SVG规范中没有z-index属性,因此您无法使用它。 您所能做的就是将图像放在dom中。

另一个注意事项:您可以通过Javascript操作SVG,这样您就可以使用普通的javascript函数来操作dom