SVGの<use>タグは、すでに定義したシェイプ要素を複製する際に使う。使い方はシンプルで、複製したい要素のidを<use>タグのhrefに指定するだけでいい。
基本的な書き方
まず元となるタグ、ないしタグのグループを作り、id属性に任意の値を指定する。
そのうえで、<use>タグのhref属性に先のidを指定する。このとき、先頭に#をつけるのを忘れてはならない。
例えば以下のように書く。
指定できる属性
<use>タグには、以下のような属性を指定できる。
| 属性名 | 概要 |
|---|---|
| href | 複製する要素、あるいはグループ要素のid。 |
| x | 複製する要素を配置するx座標。原点からではなく、参照元からの相対座標なので注意。 |
| y | 同じくy座標。こっちも相対座標なので注意。 |
| width | 複製する要素の幅。参照する要素がviewBox属性を持つ場合(svgやsymbolの場合)にのみ有効。 |
| height | 同じく高さ。こちらもsvgやsymbolの場合にのみ有効。 |
このほか、おおよそのグローバル属性(みんなが持ってる属性)も指定できる。ごちゃごちゃするので記載は割愛する。一覧はリンク先参照。
属性値の上書きはできない
おおよその属性値は指定できるが、参照元に指定されている属性値の上書きはできない。CSSと違い、参照元の指定が優先される。
使いどころ
<use>タグは、見た目に関連するSVGタグを複製したい時に使える。そのままだ。見出しを立てるほどのトピックではなかったかもしれない。
注意点としては、<defs>や<title>、<desc>など、ドキュメント自体の情報をマークアップするタグには使えない。
また、<animate>タグは見た目に関連しているように思えるが、これも複製できない。タグごと複製することはできる。