要素は大別して11つのタイプに分けることができる。
- ルート要素(The root element)
- ドキュメントメタデータ(Documnet metadata)
- スクリプティング(Scripting)
- セクション(Sections)
- グルーピングコンテント(Grouping content)
- テキストレベルセマンティック(Text-level semantics)
- エディット(Edits)
- エンベッディッドコンテント(Embedded content)
- テーブラーデータ(Tabular data)
- フォーム(Forms)
- インタラクティブ要素(Interactive elements)
コンテンツ・モデル
html4までは「インラインレベル要素」か「ブロックレベル要素」がキーワードだったが、html5ではその概念は一切ない。
その代わりに「コンテンツ・モデル」という概念を意識する必要がある。
各要素は、下記のいずれかに0個以上に属する。
- メタデータ・コンテンツ (Metadata content)
- フロー・コンテンツ (Flow content)
-
ドキュメントのbody内で使われるほとんどの要素やアプリケーションがフロー・コンテンツとしてカテゴライズする要素。
- セクショニング・コンテンツ (Sectioning content)
-
defines the scope of headings and footers.
潜在的に見出しとアウトラインを持つ。
ちなみに、アウトラインを持つ(セクショニング・ルート)要素は、 詳細は見出しとセクション - ヘッディング・コンテンツ (Heading content)
- フレージング・コンテンツ (Phrasing content)
- エンベッディッド・コンテンツ (Embedded content)
- インタラクティブ・コンテンツ (Interactive content)
- (Palpable content)
- (Transparent content models)

カテゴリー
- M:メタデータ・コンテンツ (Metadata content)
- F:フロー・コンテンツ (Flow content)
- S:セクショニング・コンテンツ (Sectioning content)
- H:ヘッディング・コンテンツ (Heading content)
- P:フレージング・コンテンツ (Phrasing content)
- E:エンベッディッド・コンテンツ (Embedded content)
- I:インタラクティブ・コンテンツ (Interactive content)
- Pa : Palpable content
- T:トランスペアレント
- Sr:セクショニングルート
- Fa:form-associated element
タグタイプ | タグ名 | その要素のコンテンツモデル Categories |
その要素の子 Content model |
その要素の親 Contexts in which this element can be used |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
M | H | F | P | S | Sr | I | E | Pa | fa | ||||||
ルート要素 | html | × | ひとつのheadとその後にひとつのbody要素が続く | ドキュメントのルート要素として | |||||||||||
ドキュメントメタデータ | head | × | 割愛 さもなければ、title要素を含むひとつ以上のM |
html要素の最初の要素として | |||||||||||
ドキュメントメタデータ | title | M | テキスト | head内(一度のみ)。 | |||||||||||
ドキュメントメタデータ | base | M | 空 | head内(一度のみ)。 | |||||||||||
ドキュメントメタデータ | link | M | 空 | ・Mを子にできる要素(例:head) ・headの子となるnoscript内。 |
重要属性 title | ||||||||||
ドキュメントメタデータ | meta | M | 空 | ・head内(「charset属性あり、もしくはhttp-equiv属性がエンコードする宣言状態である場合」「http-equiv属性あり、しかしエンコードする宣言状態ではない場合」) ・headの子となるnoscript内(http-equiv属性あり、しかしエンコードする宣言状態ではない場合)。 ・Mを子にできる要素(name属性が存在する場合) |
|||||||||||
ドキュメントメタデータ | style | M | F | 割愛 | ・head内、もしくはheadの子となるnoscript内(scoped属性がない場合) ・Fを子にできる要素(scoped属性がある場合。but before any other flow content other than inter-element whitespace, and not as the child of an element whose content model is transparent.)。 |
重要属性 title | |||||||||
スクリプティング | script | M | F | P | 割愛 | ・Fを子にできる要素 ・Pを子にできる要素 |
|||||||||
スクリプティング | noscript | M | F | P | 割愛 | 割愛 | |||||||||
セクション | body | Sr | F | html要素の2番目の要素として | |||||||||||
セクション | section | F | S | Pa | F | Fを子にできる要素 | |||||||||
セクション | nav | F | S | Pa | F | Fを子にできる要素 | |||||||||
セクション | article | F | S | Pa | F | Fを子にできる要素 | |||||||||
セクション | aside | F | S | Pa | F | Fを子にできる要素 | |||||||||
セクション | h1~h6 | H | F | Pa | P | ・hgroupの子として ・Fを子にできる要素 |
|||||||||
セクション | hgroup | H | F | Pa | ひとつ以上の h1~h6 要素 | Fを子にできる要素 | |||||||||
セクション | header | F | Pa | F | Fを子にできる要素 | ||||||||||
セクション | footer | F | Pa | F | Fを子にできる要素 | ||||||||||
セクション | address | F | Pa | F | Fを子にできる要素 | ||||||||||
グルーピングコンテント | p | F | Pa | P | Fを子にできる要素 | p内にulはNG | |||||||||
グルーピングコンテント | hr | F | 空 | Fを子にできる要素 | |||||||||||
グルーピングコンテント | pre | F | Pa | P | Fを子にできる要素 | ||||||||||
グルーピングコンテント | blockquote | F | Sr | Pa | F | Fを子にできる要素 | |||||||||
グルーピングコンテント | ol | F | Pa | 0個以上の li | Fを子にできる要素 | ||||||||||
グルーピングコンテント | ul | F | Pa | 0個以上の li | Fを子にできる要素 | ||||||||||
グルーピングコンテント | li | × | F | ol要素内 ul要素内 menu要素内 |
|||||||||||
グルーピングコンテント | dl | F | Pa | 1個以上のdt、それに続いて1個以上のddを含む、0個以上のグループ | Fを子にできる要素 | ||||||||||
グルーピングコンテント | dt | × | F | dl内のddまたはdtの前 | |||||||||||
グルーピングコンテント | dd | × | F | dl内のdt またはddの後 | |||||||||||
グルーピングコンテント | figure | F | Sr | Pa |
・ひとつのfigcaption要素とその前後にF ・F |
Fを子にできる要素 | |||||||||
グルーピングコンテント | figcaption | × | F | figure要素の最初または最後の子として。 | |||||||||||
グルーピングコンテント | div | F | Pa | F | Fを子にできる要素 | ||||||||||
テキストレベルセマンティック | a | F | P | I | Pa | T | Pのみ含む場合:Pを子にできる要素 それ以外:Fを子にできる要素 |
||||||||
テキストレベルセマンティック | em | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | strong | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | small | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | s | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | cite | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | q | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | dfn | F | P | Pa | P | Pを子にできる要素 | 重要属性 title | ||||||||
テキストレベルセマンティック | abbr | F | P | Pa | P | Pを子にできる要素 | 重要属性 title | ||||||||
テキストレベルセマンティック | time | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | code | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | var | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | samp | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | kbd | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | subとsup | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | i | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | b | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | u | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | mark | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | ruby | F | P | Pa | One or more groups of: phrasing content followed either by a single rt element, or an rp element, an rt element, and another rp element. | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | rt | × | P | ruby要素の子として | |||||||||||
テキストレベルセマンティック | rp | × | P | ruby要素の子として(ただし、rtの直前または直後にあること)。 | |||||||||||
テキストレベルセマンティック | bdi | F | P | Pa | P | Pを子にできる要素 | 重要属性 dir | ||||||||
テキストレベルセマンティック | bdo | F | P | Pa | P | Pを子にできる要素 | 重要属性 dir | ||||||||
テキストレベルセマンティック | span | F | P | Pa | P | Pを子にできる要素 | |||||||||
テキストレベルセマンティック | br | F | P | 空 | Pを子にできる要素 | ||||||||||
テキストレベルセマンティック | wbr | F | P | 空 | Pを子にできる要素 | ||||||||||
エディット | ins | F | P | Pa | T | Pのみ含む場合:Pを子にできる要素 それ以外:Fを子にできる要素 |
|||||||||
エディット | del | F | P | T | Pのみ含む場合:Pを子にできる要素 それ以外:Fを子にできる要素 |
||||||||||
エンベッディッドコンテント | img | F | P | I | E | Pa | 空 | Eを子にできる要素 | |||||||
エンベッディッドコンテント | iframe | F | P | I | E | Pa | 割愛 | Eを子にできる要素 | |||||||
エンベッディッドコンテント | embed | F | P | I | E | Pa | 空 | Eを子にできる要素 | |||||||
エンベッディッドコンテント | object | F | P | I | E | Pa | fa | 0個以上のparam要素。そしてT |
Eを子にできる要素 | ||||||
エンベッディッドコンテント | param | × | 空 | object要素の子として(ただしFの前)。 | |||||||||||
エンベッディッドコンテント | video | F | P | I | E | Pa |
0個以上のtrack要素。そしてT(ただし、子孫にメディア要素(video、audio)を含まない)。 また、src属性ない場合:上記に追加:0個以上のsource要素 |
Eを子にできる要素 | |||||||
エンベッディッドコンテント | audio | F | P | I | E | Pa | 0個以上のtrack要素。そしてT(ただし、子孫にメディア要素(video、audio)を含まない)。 |
Eを子にできる要素 | |||||||
エンベッディッドコンテント | source | × | 空 | メディア要素(video、audio)の子として(ただし、Fやtrack要素の前)。 | |||||||||||
エンベッディッドコンテント | track | × | 空 | メディア要素(video、audio)の子として(ただし、Fの前)。 | |||||||||||
エンベッディッドコンテント | canvas | F | P | E | Pa | T | Eを子にできる要素 | ||||||||
エンベッディッドコンテント | map | F | P | Pa | T | Pのみ含む場合:Pを子にできる要素 それ以外:Fを子にできる要素 |
|||||||||
エンベッディッドコンテント | area | F | P | 空 | F(ただし、祖先にmap要素がある場合) | ||||||||||
テーブラーデータ | table | F | Pa | 割愛 | Fを子にできる要素 | ||||||||||
テーブラーデータ | caption | × | F | tableの最初の子として | |||||||||||
テーブラーデータ | colgroup | × | span属性がある場合:空。 span属性がない場合:0個以上のcol要素。 |
tableの子として | |||||||||||
テーブラーデータ | col | × | 空 | span属性を持たないcolgroup要素として | |||||||||||
テーブラーデータ | tbody | × | 0個以上のtr要素 | tableの子として | |||||||||||
テーブラーデータ | thead | × | 0個以上のtr要素 | tableの子として | |||||||||||
テーブラーデータ | tfoot | × | 0個以上のtr要素 | tableの子として | |||||||||||
テーブラーデータ | tr | × | 0個以上のtd要素かth要素 |
・theadの子として ・tbodyの子として ・tfootの子として ・tableの子として |
|||||||||||
テーブラーデータ | td | Sr | F | tr要素の子として | |||||||||||
テーブラーデータ | th | × | P | tr要素の子として | |||||||||||
フォーム | form | F | Pa | F | Fを子にできる要素 | ||||||||||
フォーム | fieldset | F | Sr | Pa | fa | ひとつのlegend要素とFが続く | Fを子にできる要素 | ||||||||
フォーム | legend | × | P | fieldset要素の最初の子として | |||||||||||
フォーム | label | F | P | I | Pa | fa | P ただしwith no descendant labelable elements unless it is the element's labeled control, and no descendant label elements. |
Pを子にできる要素 | |||||||
フォーム | input | F | P | I | Pa | fa | 空 | Pを子にできる要素 | |||||||
フォーム | button | F | P | I | Pa | fa | F | Pを子にできる要素 | |||||||
フォーム | select | F | P | I | Pa | fa | 0個以上のoptionまたはoptgroup | Pを子にできる要素 | |||||||
フォーム | datalist | F | P | Fか 0個以上の option のいずれか | Pを子にできる要素 | ||||||||||
フォーム | optgroup | × | 0個以上の option | select の子として | |||||||||||
フォーム | option | × | テキスト | ・select の子として ・datalist の子として ・optgroup の子として |
|||||||||||
フォーム | textarea | F | P | I | Pa | fa | テキスト | Pを子にできる要素 | |||||||
フォーム | keygen | F | P | I | Pa | fa | 空 | Pを子にできる要素 | |||||||
フォーム | output | F | P | Pa | fa | P | Pを子にできる要素 | ||||||||
フォーム | progress | F | P | Pa | xx | P | Pを子にできる要素 | ||||||||
フォーム | meter | F | P | Pa | xx | P | Pを子にできる要素 | ||||||||
インタラクティブ要素 | details | F | Sr | I | Pa | ひとつのsummary要素とその後にFが続く |
Fを子にできる要素 | ||||||||
インタラクティブ要素 | summary | × | P | details の最初の子として | |||||||||||
インタラクティブ要素 | command | M | F | P | 空 | ・Fを子にできる要素 ・Pを子にできる要素 |
重要属性 title | ||||||||
インタラクティブ要素 | menu | F | I | Pa | 0個以上の li か F のいずれか |
Fを子にできる要素 | |||||||||
他 | (math) | F | P | E | Pa | ||||||||||
他 | (svg) | F | P | E | Pa | ||||||||||
他 | (text) | F | P | Pa |
- F(ほとんどの要素)を子にできる要素
- body, section, nav, article, aside, header(*), footer(*), address(*), blockquote, li, dt(*), dd, figure, figcaption, div, caption(*), td, form(*), button(*), datalist, details(*), menu
- Pを子にできる要素
- h1~h6, p, pre, em, strong, small, s, cite, q, dfn(*), abbr, time, code, var, samp, kbd, sub, sup, i, b, u, mark, rt, rp, bdi, bdo, span, th, legend, label(*), output, progress(*), meter(*), summary
- Tを子にできる要素
- a(*), ins, del, canvas, map
- それ以外
- ruby, iframe, object, video, audio, table, colgroup, ・・・