svgタグ -ベクターグラフィックスを描画する|HTML辞典

<svg>タグとは?

<svg> タグは、ベクターグラフィックス(SVG: Scalable Vector Graphics)を描画するためのタグです。
ピクセルではなく数式で画像を描画するため、拡大縮小しても画質が劣化しません。

基本情報

コンテンツモデル

フローコンテンツ(Flow Content)、フレージングコンテンツ(Phrasing Content)、エンベッダブルコンテンツ(Embedded Content)。

閉じタグの有無

<svg>開始タグ(<svg>)と閉じタグ(</svg>)の両方が必要 です。

基本的な記述方法

<svg width="200" height="100">
<rect x="10" y="10" width="180" height="80" fill="blue"></rect>
</svg>

使用できる主な属性

<svg> タグには以下の属性があります。

属性名説明
width描画領域の幅(px)<svg width="200">
height描画領域の高さ(px)<svg height="100">
viewBox座標系の範囲を指定<svg viewBox="0 0 200 100">
xmlns名前空間(省略可能)<svg xmlns="http://www.w3.org/2000/svg">

CSSを使ったデザイン変更

<svg> のデザインは CSS でも変更可能です。

svg {
border: 2px solid black;
background-color: lightgray;
}

適切な使用例

✅ 矩形(四角形)を描画する

<svg width="200" height="100">
<rect x="10" y="10" width="180" height="80" fill="blue"></rect>
</svg>

✅ 円を描画する

<svg width="200" height="200">
<circle cx="100" cy="100" r="50" fill="red"></circle>
</svg>

✅ 線を描画する

<svg width="200" height="100">
<line x1="10" y1="10" x2="190" y2="90" stroke="black" stroke-width="2"></line>
</svg>

✅ テキストを描画する

<svg width="200" height="100">
<text x="10" y="50" font-size="20" fill="black">Hello SVG</text>
</svg>

適切でない使用例(誤った使い方)

<svg> の中に通常の HTML を記述すると無効になる

<!-- NG: <svg> 内に <p> を記述 -->
<svg width="200" height="100">
<p>このテキストは表示されません</p>
</svg>

正しい書き方(<text> を使用)

<svg width="200" height="100">
<text x="10" y="50" font-size="20" fill="black">Hello SVG</text>
</svg>

<svg>タグと他のタグの違い

タグ役割特徴適切な用途
<svg>ベクターグラフィックスを描画XML ベースで記述ロゴ、アイコン、グラフ
<canvas>動的な描画を行うJavaScript で制御アニメーション、ゲーム
<img>画像を表示既存の画像ファイルを表示静的な画像

使用上の注意点

<svg> のサイズは widthheight で指定する

  • viewBox を使用すると拡大縮小が容易になる。

✅ JavaScript で動的に変更できる

  • <svg> 内の要素を JavaScript で変更可能。

<canvas> との違いを理解する

  • <svg> は静的な描画 に適し、<canvas> は動的な描画 に適している。

関連タグ

  • <rect> – 矩形(四角形)を描画
  • <circle> – 円を描画
  • <line> – 直線を描画
  • <text> – テキストを描画
  • <canvas> – JavaScript を使用した動的描画

まとめ

<svg> タグは、HTML文書内で ベクターグラフィックスを描画するためのタグ です。
width / height を適切に設定し、ロゴやアイコン、グラフなどの描画に活用できます。