假设您有多个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标记内的定义,但似乎并非如此:
circle
剪辑路径。rect
剪辑路径。rect
和一个circle
剪辑路径。当你hide one of the SVG tags时会很奇怪,因为Chrome和Safari会完全放弃clip-path
。
我知道当clipPath
具有不同的ID但它应该是那种方式时它有效吗?据我所知,spec不包含有关该问题的信息。
答案 0 :(得分:5)
您执行的操作无效http://www.w3.org/TR/SVG/struct.html#IDAttribute此引用http://www.w3.org/TR/2008/REC-xml-20081126/直接解决了此特定问题...
类型ID的值必须与名称生成匹配。名称绝不能在XML文档中出现多次作为此类型的值;即,ID值必须唯一地标识带有它们的元素。