6
假设您有多个SVG标记,每个SVG标记在其中定义一个具有相同ID的不同剪辑路径。clipPath在多个SVG标记中
<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标签中的定义,但似乎并没有这样的情况:
- 铬26:使用
circle
夹路径两次。 - Firefox 17:使用
rect
剪辑路径两次。 - Safari 6:按预期呈现一个
rect
和一个circle
剪辑路径。
会很奇怪,当你hide one of the SVG tags因为Chrome和Safari然后删除clip-path
完全。
我知道它适用于clipPath
有不同的ID,但它应该是这样吗?据我看到spec不包含有关问题的信息。
Upvoted参考规范。虽然它在技术上是正确的,但在SVG文档嵌入到页面中的情况下,它也是非常精彩的行为。 SVG通常来自各种来源,并且为了让用户必须解析并重新命名空间,避免潜在的冲突非常不友好。 – 2015-01-22 19:40:10
此外,鉴于html文档(非xml)内有两个单独的svg文档(xml) - 是否属于同一规范? – 2015-01-22 19:42:53
只有一个文件。 – 2015-01-22 19:44:52