HTMLチュートリアル

HTMLホーム HTMLの紹介 HTMLエディター HTMLベーシック HTML要素 HTML属性 HTML見出し HTML段落 HTMLスタイル HTMLフォーマット HTMLの引用 HTMLコメント HTMLの色 HTML CSS HTMLリンク HTML画像 HTMLファビコン HTMLテーブル HTMLリスト HTMLブロックとインライン HTMLクラス HTMLID HTMLIframe HTML JavaScript HTMLファイルパス HTMLヘッド HTMLレイアウト HTMLレスポンシブ HTMLコンピューターコード HTMLセマンティクス HTMLスタイルガイド HTMLエンティティ HTMLシンボル HTML絵文字 HTML文字セット HTMLURLエンコード HTMLとXHTML

HTMLフォーム

HTMLフォーム HTMLフォーム属性 HTMLフォーム要素 HTML入力タイプ HTML入力属性 HTML入力フォームの属性

HTMLグラフィックス

HTMLキャンバス HTML SVG

HTMLメディア

HTMLメディア HTMLビデオ HTMLオーディオ HTMLプラグイン HTML YouTube

HTML API

HTMLジオロケーション HTMLドラッグアンドドロップ HTMLWebストレージ HTMLWebワーカー HTML SSE

HTMLの

HTMLの例 HTMLクイズ HTML演習 HTML証明書 HTMLの概要 HTMLアクセシビリティ

HTMLリファレンス

HTMLタグリスト HTML属性 HTMLグローバル属性 HTMLブラウザのサポート HTMLイベント HTMLの色 HTMLキャンバス HTMLオーディオ/ビデオ HTMLDoctypes HTML文字セット HTMLURLエンコード HTML言語コード HTTPメッセージ HTTPメソッド PXからEMへのコンバーター キーボードショートカット

HTMLSVGグラフィック


SVGは、ベクターベースのグラフィックをXML形式で定義します。


SVGとは何ですか?

  • SVGはScalableVectorGraphicsの略です
  • SVGは、Webのグラフィックを定義するために使用されます
  • SVGはW3C勧告です

HTMLの<svg>要素

HTML<svg>要素はSVGグラフィックのコンテナです。

SVGには、パス、ボックス、円、テキスト、およびグラフィックイメージを描画するためのいくつかの方法があります。


ブラウザのサポート

表の数字は、 <svg>要素を完全にサポートする最初のブラウザバージョンを示しています。

Element
<svg> 4.0 9.0 3.0 3.2 10.1

SVGサークル

<!DOCTYPE html>
<html>
<body>

<svg width="100" height="100">
  <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>

</body>
</html>


SVG長方形



<svg width="400" height="100">
  <rect width="400" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" />
</svg>

SVGの角丸長方形

Sorry, your browser does not support inline SVG.

<svg width="400" height="180">
  <rect x="50" y="20" rx="20" ry="20" width="150" height="150"
  style="fill:red;stroke:black;stroke-width:5;opacity:0.5" />
</svg>

SVGスター

Sorry, your browser does not support inline SVG.

<svg width="300" height="200">
  <polygon points="100,10 40,198 190,78 10,78 160,198"
  style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg>

SVGロゴ

SVG Sorry, your browser does not support inline SVG.

<svg height="130" width="500">
  <defs>
    <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
      <stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
      <stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
    </linearGradient>
  </defs>
  <ellipse cx="100" cy="70" rx="85" ry="55" fill="url(#grad1)" />
  <text fill="#ffffff" font-size="45" font-family="Verdana" x="50" y="86">SVG</text>
  Sorry, your browser does not support inline SVG.
</svg>

SVGとCanvasの違い

SVGは、XMLで2Dグラフィックスを記述するための言語です。

Canvasは、2Dグラフィックスをその場で(JavaScriptを使用して)描画します。

SVGはXMLベースです。つまり、すべての要素がSVGDOM内で利用可能です。要素にJavaScriptイベントハンドラーをアタッチできます。

SVGでは、描画された各形状がオブジェクトとして記憶されます。SVGオブジェクトの属性が変更された場合、ブラウザは自動的に形状を再レンダリングできます。

キャンバスはピクセルごとにレンダリングされます。キャンバスでは、グラフィックが描画されると、ブラウザによって忘れられます。その位置を変更する必要がある場合は、グラフィックで覆われている可能性のあるオブジェクトを含め、シーン全体を再描画する必要があります。


CanvasとSVGの比較

次の表は、CanvasとSVGのいくつかの重要な違いを示しています。

Canvas SVG
  • Resolution dependent
  • No support for event handlers
  • Poor text rendering capabilities
  • You can save the resulting image as .png or .jpg
  • Well suited for graphic-intensive games
  • Resolution independent
  • Support for event handlers
  • Best suited for applications with large rendering areas (Google Maps)
  • Slow rendering if complex (anything that uses the DOM a lot will be slow)
  • Not suited for game applications

SVGチュートリアル

SVGの詳細については、 SVGチュートリアルをお読みください