English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
SVG <use>要素は、SVGドキュメント内の他の場所(<g>要素や<symbol>要素を含む)のSVG形状を再利用できます。再利用形状は<defs>要素内(形状は使用されるまで非表示)または外部で定義できます。
これは<use>要素の簡単な例です:
<svg width="500" height="100"> <defs> <g id="shape"> <rect x="0" y="0" width="50" height="50" ></rect> <circle cx="0" cy="0" r="50" ></circle> </g> </defs> <use xlink:href="#shape" x="50" y="50" ></use> <use xlink:href="#shape" x="200" y="50" ></use> <circle cx="50"cy="50" r="5" style="fill:#0000ff;"></circle> <circle cx="200"cy="50" r="5" style="fill:#0000ff;"></circle> </svg>テストを見て‹/›
この例では、<defs>要素内に定義された<g>要素が表示されています。これにより<g>は非表示になりますが、<use>要素が参照する場合を除いて。
<g>要素を参照する前に、ID属性を通じてIDを設定する必要があります。<use>要素はxlink:href属性を通じて設定されます。属性値のIDの前に#があることに注意してください。
<use>要素はxとy属性を通じて再利用する形状の表示位置を指定します。注意してください、<g>要素内の形状は0,0にあります。これを行ったのは、それらの位置が<use>要素に指定された位置に追加されているからです。
実行後の画像効果:
青い丸はこの例の一部ではありません。それらを追加したのは、2つの<use>要素のxとyを表示するためです。
<use>要素は、形状がユニークな値を持つid属性を持っている限り、SVG画像内のどの位置の要素でも再利用できます。以下は一例です:
<svg width="500" height="110"> <g id="shape2"> <rect x="0" y="0" width="50" height="50" /> </g> <use xlink:href="#shape2" x="200" y="50" /> <circle cx="200"cy="50" r="5" style="fill:#0000ff;"/> </svg>テストを見て‹/›
この例では、<rect>要素を含む<g>要素を定義しています。それから、<use>要素を通じて<g>要素(ネストされた<rect>要素を含む)を再利用しています。
実行後の画像効果:
注意してください、元の形状と再利用版が同時に表示されます。この理由は、<defs>要素や<symbol>要素内に再利用する形状(<g>要素)が定義されていないためです。それで見えるのです。
同様に、青い丸が<use>要素の座標を表示します。
オリジナルの形状にCSSスタイルが設定されていない場合、再利用する際にCSSスタイルを設定することができます。style属性内で設定するスタイルを指定するだけで良いです。これは例です:
<svg width="500" height="110"> <g id="shape3"> <rect x="0" y="0" width="50" height="50" /> </g> <use xlink:href="#shape3" x="100" y="50" style="fill: #00ff00;"/> <use xlink:href="#shape3" x="200" y="50" style="stroke: #00ff00; fill: none;"/> </svg>テストを見て‹/›
元の形状にstyle属性が設定されていない場合の注意。その場合、デフォルトのスタイル(通常は黒色)でレンダリングされます。