HTML要素 ・ メディア

<svg>

ベクター画像

線や図形を数式で表す、拡大しても劣化しない画像(SVG)を、HTMLの中に直接書く要素です。アイコンや図によく使います。

種類
インライン要素(置換要素)
終了タグ
必須
主な属性
viewBox・width・height
01

サンプルコード

HTML
1<svg width="120" height="120" viewBox="0 0 120 120" role="img" aria-label="コーヒーカップ">
2 <rect x="20" y="40" width="60" height="55" rx="8" fill="#b68235"/>
3 <path d="M80 52 h10 a12 12 0 0 1 0 24 h-10" fill="none" stroke="#b68235" stroke-width="6"/>
4 <path d="M38 18 q6 8 0 16 M58 18 q6 8 0 16" stroke="#a19c98" stroke-width="3" fill="none"/>
5</svg>
02

実行結果

ブラウザでの表示
03

解説

svg は、図形を座標と命令で描くベクター形式の画像です。どれだけ拡大してもくっきり表示され、ファイルサイズも小さくなります。

viewBox は描画に使う座標の範囲です。width・height を変えても、この座標系のまま拡大・縮小されます。

HTMLに直接書いたSVGは、CSSで色を変えたり、アニメーションさせたりできます。fill="currentColor" にすると、周りの文字色と同じ色になります。

04

応用例・注意点

よく使う図形の要素

要素説明
rect四角形(rx で角丸)
circle円
line / polyline直線 / 折れ線
path自由な線(d 属性に命令を書く)
text文字
g図形のグループ

文字色に合わせたアイコン

fill や stroke に currentColor を指定すると、親要素の color が使われます。

HTML
1<a href="/search" class="icon-link">
2 <svg width="16" height="16" viewBox="0 0 24 24" aria-hidden="true">
3 <circle cx="11" cy="11" r="7" fill="none" stroke="currentColor" stroke-width="2"/>
4 </svg>
5 検索
6</a>
CSS
1.icon-link {
2 color: #7d5411;
3}
4.icon-link:hover {
5 color: #b68235;
6}

注意点

  1. 01意味のあるSVGには role="img" と aria-label を、装飾だけのものには aria-hidden="true" を付けます。
  2. 02写真のような複雑な画像には向きません。写真は JPEG や WebP を使います。
↑↓ 選択Enter 移動Esc 閉じるCtrl K⌘K で開閉