google chrome -元素顺序对内联SVG有影响吗?



在Google Chrome 24中,如果<use>元素引用的元素是稍后在文档中定义的,则不会呈现。在use元素的文档中,我没有注意到任何与元素顺序相关的内容。

这种行为是未定义的,不应该期望在浏览器之间保持一致,还是只是Chrome中的一个bug ?

下面是一个这样的例子(对这个问题稍作修改)。蓝色圆圈呈现预期,红色,没有那么多。Firefox 17和IE 9呈现的两个圆圈和我预期的一样。当相同的内容被引用为外部<img />时,两个圆圈也会渲染。
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Chrome use-tag bug?</title>
</head>
<body>
    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="200px" height="200px" viewBox="0 0 200 200">
        <defs>
            <g id="test2">
                <circle cx="50" cy="50" r="25" fill="blue"/>
            </g>
        </defs>
        <g>
            <rect x="0.5" y="0.5" width="199" height="199" stroke="black" fill="none"/>
            <use xlink:href="#test1" x="0" y="0"/>
            <use xlink:href="#test2" x="0" y="0"/>
        </g>
        <defs>
            <g id="test1">
                <circle cx="100" cy="100" r="25" fill="red"/>
            </g>
        </defs>
    </svg>
</body>
</html>

UPDATE:似乎是在Chrome 39工作

渲染顺序取决于元素的顺序,所以它看起来很像chrome中的一个bug:SVG渲染命令1.0,第2部分:语言

最新更新