複数のSVGピクチャが1つのHTMLページに埋め込まれています。 すべてのSVGには、use
要素で参照している自分のdefs
セクションがあります。 defs
と同じIDを持つ要素を定義して参照することはできないようです。 第2のSVG use
は、最初のSVG defs
セクションの定義フォームを選択し、ローカル再定義を無視します。SVGでローカルの `defs`を`使用する '
LOCAL defs
セクションへの参照方法は誰にも分かりますか?
ChromeとFirefoxで同じ話です。
以下の例を参照してください:複数の同一のIDを持つSVGファイルがhttp://www.w3.org/TR/SVG/struct.html#IDAttribute
あなたの選択肢ごとに無効である
<html><head></head><body> <svg height="50" width="50"> <defs> <rect id="mybox" height="40" width="40" style="fill:#00F;"></rect> </defs> <use xlink:href="#mybox"/> </svg> <svg height="50" width="50"> <defs> <rect id="mybox" height="20" width="20" style="fill:#F00;"></rect> </defs> <use xlink:href="#mybox"/> </svg> </body></html>
私は外部SVGファイルを使用できません。なぜなら、私は、javaScriptを使用してページ内にSVGを生成するからです。 [my code](http://wavedrom.googlecode.com/svn/trunk/tutorial.html)。すべてのIDを一意にすることは困難です。だから、私は '
その場合、グローバルに一意のIDを生成する必要があります。 –
この問題は、SVGファイル内に複数の同一のIDではなく、HTMLファイル内の複数のインラインSVG(defsセクションで同じIDを使用する)です。 SVGがインラインである場合にのみ、IDが外部にある場合、IDは衝突しません。驚いたことに、私はIDがSVG内部でユニークであることを期待しています。しかし、HTMLでインライン展開されたときに、すべてが同じDOMの一部になるので、なんらかの意味があります。しかし、迷惑な。 – rlovtang