26

これはどういう意味ですか?

.append("svg:svg")

HTML と D3 コードで見ました。SVGのプラグインを追加しますか?

4

2 に答える 2

21

XHTML コードでは、名前空間を使用して、Web ページに含まれる他の XML ベースの言語を区別できます。ここでは、タグ「svg」の前に名前空間「svg」が使用されています。

namespace:tagname

これは、2 つのタグ (XHTML と SVG など) が同じ名前で、どちらを参照するかを正確に指定したい場合に便利です。タグは属性で指定できxmlnsます。ご存知のように、XHTML ドキュメントは

<html xmlns="http://www.w3.org/1999/xhtml">

プレフィックスを次のように指定できます

<html xmlns:prefix="http://www.w3.org/1999/xhtml">

そして、あなたは使用します

<prefix:head>
    <prefix:title></prefix:title>
</prefix:head>

同様に、使用できます

<svg xmlns="http://www.w3.org/2000/svg">

<svg>svg グラフィックを含めるときの代わりに。svgprefix次に、すべての svg タグがプレフィックスで始まります。ただし、子 SVG ノードがある場合は、このxmlns属性も定義する必要があります。このような場合、プレフィックスを定義する方がおそらく簡単です。

于 2012-05-14T12:41:03.337 に答える
16

D3.js のappend()メソッドのドキュメントから:

要素のタグ名には、SVG 名前空間に「テキスト」要素を作成するための「svg:text」などの名前空間プレフィックスが含まれる場合があります。デフォルトでは、D3 は svg、xhtml、xlink、xml、および xmlns 名前空間をサポートしています。に追加することで、追加の名前空間を登録できますd3.ns.prefix

特に、D3.js の名前空間プレフィックスはドキュメントに基づいているのではなく、一般的なプレフィックスから実際の名前空間 URL への事前定義されたマップに基づいていることに注意してください。

名前空間は、XML ドキュメント ( XHTML は含むが HTML は含まない) に同じ名前の 2 つの属性または要素を含めることができる方法です (たとえば、数学的なサイン計算の「sin」と道徳的失敗の「sin」)。<svg>SVG 要素がSVG 名前空間にない限り、要素を XHTML ドキュメントに配置しても意味がありません。

詳細については、XML の名前空間を参照してください。

于 2012-05-14T19:58:05.677 に答える