Widely available すべての主要ブラウザで対応済み。安心して使用可能。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
1
12
1.5
2
18
1
HTML 属性
height
1
12
1.5
2
18
1
width
1
12
1.5
2
18
1
DOM API

HTMLCanvasElement インターフェイスは、canvas 要素のレイアウトや表示を操作するための属性やメソッドを提供します。HTMLCanvasElement は HTMLElement インターフェイスのプロパティやメソッドも継承しています。

1
12
1.5
2
18
1

HTMLCanvasElement.getContext() メソッドは、描画コンテキストを返します。対応していないコンテキスト識別子であったり、既に別なコンテキストモードが設定されていたりした場合は null になります。

1
12
1.5
2
18
1

HTMLCanvasElement.height プロパティは CSS ピクセル数として解釈される正の整数であり、この canvas 要素の height 属性を反映します。この属性が指定されなかった場合、または負の数など、無効な値をが設定された場合、既定値の 150 が使用されます。

1
12
1.5
3
18
1

HTMLCanvasElement.toBlob() メソッドは、 キャンバスに含まれる画像を表す Blob オブジェクトを生成します。 このファイルは、ユーザーエージェントの裁量によって、ディスクにキャッシュされるか、メモリーに保存されたりすることがあります。

50
79
18
11
50
11

HTMLCanvasElement.toDataURL() メソッドは、 type 引数で指定された形式で画像を表現したものが入った data URL を返します。

2
12
2
4
18
3

HTMLCanvasElement.width プロパティは CSS ピクセル数として解釈される正の整数であり、この canvas 要素の width 属性を反映します。この属性が指定されなかった場合、または負の数など、無効な値をが設定された場合、既定値の 300 が使用されます。

1
12
1.5
3
18
1
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)
注釈 3件
実装メモ
  • Firefox 5 より前のバージョンでは、キャンバスの幅と高さは符号なし整数ではなく符号付き整数でした。
  • Firefox 6 以前では、幅または高さが 0 の <canvas> 要素は、デフォルトの寸法があるかのようにレンダリングされました。
  • Firefox 12 より前のバージョンでは、JavaScript が無効の場合、<canvas> 要素は仕様に従ってフォールバックコンテンツを表示する代わりにレンダリングされていました。その後、フォールバックコンテンツが代わりにレンダリングされるようになりました。
注釈 1件
実装メモ
  • Apple の Safari ブラウザの初期バージョンでは閉じタグは必要ありませんが、仕様では必須であることが示されているため、幅広い互換性のために必ず含める必要があります。バージョン 2 より前の Safari では、CSS のトリックを使ってマスクしない限り、キャンバス自体に加えてフォールバックのコンテンツもレンダリングされます。
注釈 3件
実装メモ
  • Firefox 5 より前のバージョンでは、キャンバスの幅と高さは符号なし整数ではなく符号付き整数でした。
  • Firefox 6 以前では、幅または高さが 0 の <canvas> 要素は、デフォルトの寸法があるかのようにレンダリングされました。
  • Firefox 12 より前のバージョンでは、JavaScript が無効の場合、<canvas> 要素は仕様に従ってフォールバックコンテンツを表示する代わりにレンダリングされていました。その後、フォールバックコンテンツが代わりにレンダリングされるようになりました。
注釈 1件
実装メモ
  • Apple の Safari ブラウザの初期バージョンでは閉じタグは必要ありませんが、仕様では必須であることが示されているため、幅広い互換性のために必ず含める必要があります。バージョン 2 より前の Safari では、CSS のトリックを使ってマスクしない限り、キャンバス自体に加えてフォールバックのコンテンツもレンダリングされます。
注釈 3件
実装メモ
  • Firefox 5 より前のバージョンでは、キャンバスの幅と高さは符号なし整数ではなく符号付き整数でした。
  • Firefox 6 以前では、幅または高さが 0 の <canvas> 要素は、デフォルトの寸法があるかのようにレンダリングされました。
  • Firefox 12 より前のバージョンでは、JavaScript が無効の場合、<canvas> 要素は仕様に従ってフォールバックコンテンツを表示する代わりにレンダリングされていました。その後、フォールバックコンテンツが代わりにレンダリングされるようになりました。
注釈 1件
実装メモ
  • Apple の Safari ブラウザの初期バージョンでは閉じタグは必要ありませんが、仕様では必須であることが示されているため、幅広い互換性のために必ず含める必要があります。バージョン 2 より前の Safari では、CSS のトリックを使ってマスクしない限り、キャンバス自体に加えてフォールバックのコンテンツもレンダリングされます。
注釈 2件
削除済み
  • このバージョンで機能が削除されました (79)
対応条件
  • ベンダープレフィックス付きで対応: ms (12)

基本構文

JAVASCRIPT
<canvas id="myCanvas" width="300" height="150"></canvas>
<script>
  const ctx = document.getElementById('myCanvas').getContext('2d');
  ctx.fillStyle = '#3498db';
  ctx.fillRect(10, 10, 100, 80);
  ctx.fillStyle = '#e74c3c';
  ctx.beginPath();
  ctx.arc(200, 75, 40, 0, Math.PI * 2);
  ctx.fill();
</script>

ライブデモ

Draw shapes

Rectangle, circle, triangle draw.color or coordinates Try changing it.. with Canvas API

プレビュー全画面表示

Draw text

Text draw.font or style change in.. with fillText / strokeText

プレビュー全画面表示

Gradients and paths

lineargradient and curvelinepath combinationdraw.color changeTry changing it..

プレビュー全画面表示

実務での使いどころ

  • <canvas> の活用

    HTML の <canvas> 要素 と キャンバススクリプティング API や WebGL API を使用して、グラフィックやアニメーションを描画することができます。

注意点

  • 古いブラウザでは対応していない場合がある。

アクセシビリティ

  • スクリーンリーダーでの読み上げを確認すること。