HTML4.01やXHTML1.0では、タグでマークアップした部分は「ブロック要素」または「インライン要素」に分類されていました。これに対し、HTML5ではより細かなカテゴリーに分類するようになっています。HTML5で定義されたカテゴリーは以下の7種類で、要素によっては複数のカテゴリーに属しています。また、どのカテゴリーにも属さない要素も存在します。
たとえば、代表的な要素が属するカテゴリーは以下のようになっています。a要素やimg要素のように、条件によって属するカテゴリーが変わるケースもあります。
HTML5における要素の分類の考え方は「コンテンツ・モデル」と呼ばれています。
※1 … フレージング・コンテンツのみを含む場合
※2 … usemap属性が指定されている場合
フロー・コンテンツ
ブラウザの画面に表示するコンテンツを構成する要素です。HTML5のほとんどの要素がフロー・コンテンツに属しています。なお、HTML4.01やXHTML1.0におけるブロック要素とインライン要素はフロー・コンテンツに含まれていると考えることができます。
- フロー・コンテンツに属する要素
-
a, abbr, address, area *1, article, aside, audio, b, bdi, bdo, blockquote, br, button, canvas, cite, code, command, datalist, del, details, dfn, div, dl, em, embed, fieldset, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgorup, hr, i, iframe, img, input, ins, kbd, keygen, label, map, mark, math, menu, meter, nav, noscript, object, ol, output, p, pre, progress, q, ruby, s, samp, script, section, select, small, span, strong, style *2, sub, sup, svg, table, textarea, time, u, ul, var, video, wbr, テキスト
*1 ... map要素内にある場合
*2 ... scoped属性が指定されている場合
フレージング・コンテンツ
テキストを構成する要素です。HTML4.01やXHTML1.0におけるインライン要素はフレージング・コンテンツに含まれていると考えることができます。
- フレージング・コンテンツに属する要素
-
a *1, abbr, area *2, audio, b, bdi, bdo, br, button, canvas, cite, code, command, datalist, del *1 dfn, em, embed, i, iframe, img, input, ins *1, kbd, keygen, label, map *1, mark, math, meter, noscript, object, output, progress, q, ruby, s, samp, script, select, small, span, strong, sub, sup, svg, textarea, time, u, var, video, wbr, テキスト
*1 ... フレージング・コンテンツのみを含む場合
*2 ... map要素内にある場合
セクショニング・コンテンツ
セクションを構成する要素で、いずれの要素もHTML5で追加されたものです。セクションについてはP.79を参照してください。
- セクショニング・コンテンツに属する要素
-
article, aside, nav, section
ヘディング・コンテンツ
見出しを構成し、セクショニング・コンテンツとも深く関わる要素です。
- ヘディング・コンテンツに属する要素
-
h1, h2, h3, h4, h5, h6, hgroup
エンベディッド・コンテンツ
画像や動画など、外部ソースを利用するコンテンツです。
- エンベディッド・コンテンツに属する要素
-
audio, canvas, embed, iframe, img, math, object, svg, video
インタラクティブ・コンテンツ
ユーザーの操作を必要とする、リンクやフォームなどを構成する要素です。
- インタラクティブ・コンテンツに属する要素
-
a, audio *1, button, details, embed, iframe, img *2, input *3, keygen, label, menu *4, object *2, select, textarea, video *1
*1 ... controls属性が指定されている場合
*2 ... usemap属性が指定されている場合
*3 ... type属性の値が「hidden」でない場合
*4 ... type属性の値が「toolbar」でない場合
メタデータ・コンテンツ
ページに関する情報(メタデータ)を挿入するための要素です。
- メタ・コンテンツに属する要素
-
base, command, link, meta, noscript, script, style, title
7種類の主要なカテゴリー以外にも、HTML5では「フォーム関連の要素」や「セクショニング・ルート」といったカテゴリーによる分類もおおなわれています。
フォーム関連の要素
フォーム関連の入力項目やラベル、ボタンなどを構成する要素です。
- フォーム関連の要素
-
button, fieldset, input, keygen, label, meter, object, output, progress, select, textarea
セクショニング・ルート
文書のツリー構造(アウトライン)の最上位階層を構成する要素です。詳しくはP.97を参照してください。
- セクショニング・ルートに属する要素
-
blockquote, body, details, fieldset, figure, td
カテゴリーに属していない要素
どのカテゴリーにも属していない要素です。こうした要素の多くは、tableやulといった他の要素内で使用するものとなっています。
- カテゴリーに属していない主な要素
-
caption, colgroup, col, dt, dd, figcaption, head, html, li, tbody, thead, tfoot, tr, th など