私はSVGで遊んでいますが、ポジショニングにいくつか問題があります。 g
グループタグに含まれる一連の図形があります。コンテナのように使用することを望んでいたので、そのx位置を設定すると、そのグループのすべての要素も移動します。しかし、それは不可能のようです。
前の回答に対するより短い代替案があります。 SVG要素は、svg要素をネストしてグループ化することもできます。
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<svg x="10">
<rect x="10" y="10" height="100" width="100" style="stroke:#ff0000;fill: #0000ff"/>
</svg>
<svg x="200">
<rect x="10" y="10" height="100" width="100" style="stroke:#009900;fill: #00cc00"/>
</svg>
</svg>
2つの長方形は(色を除いて)同じですが、親のsvg要素のx値は異なります。
他のコメントで述べたように、transform
要素のg
属性はあなたが望むものです。 transform="translate(x,y)"
を使用してg
を移動すると、g
内のものがg
に関連して移動します。
複数のSVG形状をグループ化し、グループを配置するには、2つの方法があります。
アーロンが書いたように、transform
属性を持つ<g>
を最初に使用します。ただし、<g>
要素でx
属性を使用することはできません。
もう1つの方法は、ネストされた<svg>
要素を使用することです。
<svg id="parent">
<svg id="group1" x="10">
<!-- some shapes -->
</svg>
</svg>
このようにして、#group1 svgは#parentにネストされ、x=10
は親svgに相対的です。ただし、<svg>
要素でtransform
属性を使用することはできません。これは、<g>
要素とはまったく逆です。