複数のSVGタグがあり、それぞれが同じIDを持つ異なるクリップパスを定義するとします。複数のSVGタグ内のclipPath
<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
クリップパスを2回使用します。 - Firefox 17:
rect
クリップパスを2回使用します。 - Safari 6:
rect
と1つのcircle
クリップパスが予想通りにレンダリングされます。
ときhide one of the SVG tags ChromeとSafariは、その後完全clip-path
をドロップするので、それは奇妙な取得します。
clipPath
のIDが異なる場合でも動作することはわかっていますが、そのようになっていますか?私が見るところでは、specには問題に関する情報が含まれていません。何をやっている
仕様への参照のために上書きされています。それは技術的には正解ですが、SVGドキュメントがページにどのように埋め込まれているかという状況においても、かなり精神的な動作です。 SVGはさまざまなソースから引き出されることが多く、潜在的な衝突を避けるためにすべての名前空間を解析して再疑似名前空間にする必要があります。 –
また、html doc(非xml)の中に2つの別々のsvg docs(xml)があることを考えると、それは同じ仕様に当てはまりますか? –
文書は1つだけです。 –