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>
タグは見た目に関連しているように思えるが、これも複製できない。タグごと複製することはできる。