SVG翻译似乎在Chrome/Chromium中表现不同

lup*_*por 4 svg google-chrome transform chromium

https://jsfiddle.net/Lpfa9umq/

码:

<svg>
    <symbol>
        <circle id="circle1" cx="50" cy="50" r="20" stroke="black" stroke-width="1" />
        <circle id="circle2" cx="25" cy="25" r="10" stroke="red" fill="red" stroke-width="1" />
    </symbol>
</svg>
<svg width="100" height="100">
    <use xlink:href="#circle1" />
    <svg width="50" height="50" transform="translate(20, 10)">
        <use xlink:href="#circle2" />
    </svg>
</svg>
Run Code Online (Sandbox Code Playgroud)

transform属性适用于Firefox,但不适用于Chrome/Chromium,为什么?我用错了吗?

Rob*_*son 8

在SVG 1.1中,<svg>元素不接受转换属性.在SVG 2中,建议它们应该.

Chrome和Firefox正在尝试实施SVG 2规范的建议部分.有些内容仅由Firefox实现,其他内容仅由Chrome实现.大多数都没有实现,两者都实现了一些功能.SVG 2规范本身尚未完成.

在这种特殊情况下,Firefox已经实现了SVG 2功能,但Chrome没有.

您可以在不支持此SVG 2功能的浏览器中通过用<svg>元素替换<g>元素或在<svg>元素上创建子元素<g>并将变换放在<g>元素上来获得相同的结果.


Alv*_* K. 2

<svg>inside<svg>使浏览器感到困惑。而是使用<g>标签。

<g transform="translate(20, 10)">
    <use xlink:href="#circle2" />
</g>
Run Code Online (Sandbox Code Playgroud)