【发布时间】:2013-04-01 11:02:45
【问题描述】:
假设您有多个 SVG 标记,在每个标记中您定义具有相同 ID 的不同剪辑路径。
<svg id="svg1" width="200" height="200">
<defs>
<clipPath id="nodeclipper">
<rect width="100" height="100" x="0" y="0" />
</clipPath>
</defs>
</svg>
<svg id="svg2" width="200" height="200">
<defs>
<clipPath id="nodeclipper">
<circle cx="20" cy="0" r="40" />
</clipPath>
</defs>
</svg>
我还发了一个JSFiddle。预期的行为是什么?我认为一个元素只能引用它自己的 SVG 标签内的定义,但事实并非如此:
- Chrome 26:两次使用
circle剪辑路径。 - Firefox 17:两次使用
rect剪辑路径。 - Safari 6:按预期呈现一个
rect和一个circle剪辑路径。
当你 hide one of the SVG tags 时会变得很奇怪,因为 Chrome 和 Safari 会完全放弃 clip-path。
我知道当clipPaths 具有不同的 ID 时它可以工作,但它应该是这样吗?据我所知,spec 不包含有关该问题的信息。
【问题讨论】:
标签: svg cross-browser