ITコース HTML基礎 015_HTML5の新機能
HTML5の新機能
HTML5 は HTML の最新バージョンで、多くの新しいタグ、属性、機能を導入し、Web の機能とインタラクティブ性を大幅に向上させました。
HTML5 のいくつかの興味深い新機能:
- 描画用の canvas 要素
- メディア再生用の video と audio 要素
- ローカルオフラインストレージのより良いサポート
- article、footer、header、nav、section などの新しい特殊コンテンツ要素
- calendar、date、time、email、url、search などの新しいフォームコントロール
<canvas>
HTML5 <canvas> 要素は、ウェブページにグラフィックを描画するために使用されます。<canvas> 要素は JavaScript の描画 API に基づいており、チャート、グラフィック、アニメーションなど、さまざまなグラフィックを作成するために使用できます。
例:
<canvas width="500" height="500"> お使いのブラウザは HTML5 canvas タグをサポートしていません。</canvas><script> const canvas = document.querySelector("canvas"); // 描画コンテキストを取得 const ctx = canvas.getContext("2d"); // 円を描画 ctx.beginPath(); ctx.arc(250, 250, 100, 0, 2 * Math.PI); ctx.fillStyle = "yellow"; ctx.fill();</script>効果:

<svg>
HTML5 SVG 要素は、ウェブページに SVG グラフィックを作成するために使用されます。SVG グラフィックは XML ベースのベクターグラフィックで、劣化なしで拡大縮小でき、さまざまな目的に適しています:
SVG 要素には以下が含まれます:
<svg>要素:SVG グラフィックのルート要素を定義します。<path>要素:パス形状を定義します。<rect>要素:矩形形状を定義します。<circle>要素:円形形状を定義します。<ellipse>要素:楕円形形状を定義します。<line>要素:直線を定義します。<polygon>要素:多角形を定義します。<polyline>要素:折れ線を定義します。<text>要素:テキストを定義します。<g>要素:SVG 要素をグループ化するためのグループを定義します。<defs>要素:複数の SVG 要素に適用できるグローバル属性を定義します。
例:
<svg width="500" height="500"> <circle cx="250" cy="250" r="100" fill="yellow" /></svg>効果:

SVG と Canvas は両方とも、ウェブページにグラフィックを作成するためのツールです。それぞれに長所と短所があり、異なるシナリオに適しています。
SVG は XML ベースのベクターグラフィックで、劣化なしで拡大縮小できます。これは、SVG グラフィックは品質を失うことなく任意のサイズで表示できることを意味します。SVG グラフィックは CSS と JavaScript を使用して操作やアニメーション化することもできます。
Canvas は JavaScript ベースの描画 API で、ビットマップグラフィックを作成できます。これは、Canvas グラフィックは劣化なしで拡大縮小できませんが、JavaScript を使用してより複雑なグラフィックを作成できることを意味します。Canvas グラフィックも JavaScript を使用して操作やアニメーション化できます。
SVG と Canvas の具体的な違い:
| 特徴 | SVG | Canvas |
|---|---|---|
| 画像タイプ | ベクター | ビットマップ |
| 拡大縮小 | 劣化なし | 劣化あり |
| グラフィックタイプ | 矩形、円、パスなど | 任意 |
| 操作 | CSS、JavaScript | JavaScript |
| アニメーション | CSS、JavaScript | JavaScript |
| ファイルサイズ | 通常小さい | 通常大きい |
| アクセシビリティ | 優秀 | 普通 |
SVG が適しているシナリオ:
- 劣化なしで拡大縮小が必要なグラフィック、例えばアイコン、ロゴ、イラスト
- CSS と JavaScript を使用して操作やアニメーション化が必要なグラフィック
Canvas が適しているシナリオ:
- 複雑なグラフィックの作成が必要なシナリオ、例えばゲーム、アニメーション
- JavaScript を使用して複雑な操作が必要なシナリオ
HTML5フォーム
HTML5 は、フォームの機能と使いやすさを向上させるために、いくつかの新しい入力タイプと属性を導入しました。
新しいフォーム要素:
<datalist>要素:<input>要素の事前定義オプションリストに使用します。
例:
<label for="browser">ブラウザを選択:</label><input list="browsers" id="browser" name="browser" autocomplete="off"><datalist id="browsers"> <option value="Chrome"> <option value="Firefox"> <option value="Safari"> <option value="Edge"> <option value="Opera"></datalist>効果:

| 要素 | 説明 |
|---|---|
<datalist> | <input> 要素の事前定義オプションリストを定義します。 |
<output> | 計算結果を表します。 |
<keygen> | フォーム用のキーペアを作成し、通常はキー交換に使用されます。 |
<progress> | 任意のタイプのタスクの進行状況バーを定義します。 |
<meter> | 既知の範囲内のスカラー値または分数を測定します。 |
新しいフォーム属性:
<form>/<input>autocomplete 属性:フォームまたは入力フィールドがオートコンプリート機能を持つべきかどうかを指定します。ユーザーがオートコンプリートフィールドで入力を開始すると、ブラウザはそのフィールドに入力済みのオプションを表示します。
例:
<form action="demo-form.php" autocomplete="on"> 名字:<input type="text" name="fname"><br> 名前:<input type="text" name="lname"><br> メール:<input type="email" name="email" autocomplete="off"><br> <input type="submit"></form>効果:

| 属性 | 説明 |
|---|---|
autocomplete | 入力フィールドがオートコンプリートを有効にするかどうかを指定します。 |
novalidate | ブラウザによるフォームの検証を無効にします。 |
form | <input> 要素が属するフォームを指定し、特定のフォームに関連付けます。 |
formaction | フォーム送信時に使用する URL を指定します。 |
formenctype | フォーム送信時に使用するエンコードタイプを指定します(例:application/x-www-form-urlencoded または multipart/form-data)。 |
formmethod | フォーム送信時に使用する HTTP メソッドを指定します(例:get または post)。 |
formnovalidate | フォーム送信時にブラウザのフォーム検証を無効にします。 |
formtarget | フォーム送信後に開くターゲットウィンドウまたはフレームを指定します。 |
height | <input type="image"> 要素の高さを設定します。 |
width | <input type="image"> 要素の幅を設定します。 |
list | <input> または <textarea> 要素に関連付けられた <datalist> 要素の id を指定します。 |
min | <input> 要素の最小値を指定します。 |
max | <input> 要素の最大値を指定します。 |
pattern | フォーム送信時に入力フィールドを検証するための正規表現を定義します。 |
placeholder | 入力フィールドの短いヒントを提供し、フィールドが空の場合にのみ表示されます。 |
required | 入力フィールドが必須かどうかを指定します。 |
step | <input> 要素の有効な数値間隔を指定します。 |
新しい input タイプ:
<form action="/submit" method="post"> <label for="name">名前:</label> <input type="text" id="name" required /> <br> <label for="email">メールアドレス:</label> <input type="email" id="email" required /> <br> <label for="birthday">生年月日:</label> <input type="date" id="birthday" required /> <br> <label for="phone">電話番号:</label> <input type="tel" id="phone" required /> <br> <input type="submit" value="送信" /></form>効果:

| タイプ | 用途 |
|---|---|
| color | 色の値を入力するために使用します。 |
| date | 日付の値を入力するために使用します。 |
| datetime-local | 日付と時刻の値を入力するために使用します。 |
| メールアドレスを入力するために使用します。 | |
| file | ファイルをアップロードするために使用します。 |
| month | 月の値を入力するために使用します。 |
| number | 数値を入力するために使用します。 |
| range | 範囲値を入力するために使用します。 |
| search | 検索文字列を入力するために使用します。 |
| tel | 電話番号を入力するために使用します。 |
| time | 時刻の値を入力するために使用します。 |
| url | URL アドレスを入力するために使用します。 |
[!まとめ]
| 要素 | 用途 | 推奨 |
|---|---|---|
| 新しい要素 | ||
<canvas> | チャートやその他の画像などのグラフィックを定義します。このタグは JavaScript の描画 API に基づいています。 | 推奨 |
<audio> | オーディオコンテンツを定義します | 推奨 |
<video> | ビデオ(video または movie)を定義します | 推奨 |
<source> | <video> と <audio> のマルチメディアリソースを定義します | 推奨 |
<track> | オーディオまたはビデオの字幕や翻訳を定義します | 推奨 |
<datalist> | オプションリストを定義します。input 要素と一緒に使用して、input の可能な値を定義します。 | 推奨 |
<keygen> | フォーム用のキーペアジェネレータフィールドを指定します。 | 推奨 |
<output> | スクリプトの出力など、さまざまなタイプの出力を定義します。 | 推奨 |
<article> | ページの独立したコンテンツ領域を定義します。 | 推奨 |
<aside> | ページのサイドバーコンテンツを定義します。 | 推奨 |
<bdi> | テキストのセグメントを親要素のテキスト方向設定から分離できるようにします。 | 推奨 |
<dialog> | ダイアログボックスを定義します。 | 推奨 |
<figure> | 画像やその他の視覚コンテンツを含む領域を定義します。 | 推奨 |
<footer> | ページまたはセクションのフッター領域を定義します。 | 推奨 |
<header> | ページまたはセクションのヘッダー領域を定義します。 | 推奨 |
<main> | ページの主要コンテンツ領域を定義します。 | 推奨 |
<mark> | 重要またはハイライトされたテキストを定義します。 | 推奨 |
<meter> | 進捗または値の範囲を定義します。 | 推奨 |
<nav> | ページまたはセクションのナビゲーション領域を定義します。 | 推奨 |
<progress> | 進捗バーを定義します。 | 推奨 |
<time> | 日付または時刻を定義します。 | 推奨 |
<wbr> | テキスト内に改行可能な文字を挿入できるようにします。 | 推奨 |
| 非推奨または廃止された要素 | ||
<acronym> | 頭字語を定義します。<abbr> 要素の使用を推奨します。 | 推奨 |
<applet> | Java アプレットを定義します。JavaScript や他の最新技術の使用を推奨します。 | 非推奨 |
<basefont> | ページ内のすべてのテキストのデフォルトフォントサイズと色を設定します。CSS を使用したテキストスタイリングを推奨します。 | 非推奨 |
<big> | テキストのフォントサイズを設定します。CSS を使用したテキストスタイリングを推奨します。 | 非推奨 |
<center> | テキストを中央揃えにします。CSS を使用したテキスト配置を推奨します。 | 非推奨 |
<dir> | ディレクトリリストを定義します。<ul> 要素の使用を推奨します。 | 非推奨 |
<font> | テキストのフォントサイズ、色、スタイルなどを設定します。CSS を使用したテキストスタイリングを推奨します。 | 非推奨 |
<frame> | フレームを定義します。iframe 要素の使用を推奨します。 | 非推奨 |
<frameset> | フレームセットを定義します。iframe 要素の使用を推奨します。 | 非推奨 |
<noframes> | フレームをサポートしないブラウザに代替コンテンツを提供します。JavaScript を使用してブラウザがフレームをサポートしているかどうかを判断し、それに応じてコンテンツを表示または非表示にすることを推奨します。 | 非推奨 |
<strike> | テキストに取り消し線を設定します。CSS を使用したテキストスタイリングを推奨します。 | 非推奨 |
<tt> | テキストに等幅フォントを設定します。CSS を使用したテキストフォントを推奨します。 | 非推奨 |