コンテンツ・モデルについて

コンテンツ・モデル(内容モデル)とは、各要素が内包できるコンテンツを定義したものになります。

具体的には、

  • section要素の中にはフロー・コンテンツを入れることができる
  • p要素の中にはフレージング・コンテンツしか入れられない

といったルールが、各要素のコンテンツ・モデルによって詳細に決められていることになります。(要素ごとに決められています)

HTML5で文書を作成する際には、このコンテンツ・モデルを意識してマークアップすることが求められます。

  • 各要素のコンテンツ・モデルは、TAG indexのリファレンス内でも調べることができます。(要素ページの上部にある内容と書かれた項目に記載されています)

要素カテゴリー

要素のコンテンツ・モデルを調べるには、要素カテゴリーというものを理解しておく必要があります。

この要素カテゴリーとは、HTML5の各要素を目的に応じて細かく分類したものになります。そして、ほとんどの要素が次のいずれかのカテゴリーに属することになります。

メタデータ・コンテンツ
文書情報や別文書との関係などを定義するコンテンツ。(head要素内で使用できる要素)
フロー・コンテンツ
文書の本体に現れる一般的なコンテンツ。(body要素内で使用するほとんどの要素)
セクショニング・コンテンツ
セクションの範囲を定義するコンテンツ。(明示的にセクションを生成する要素)
ヘッディング・コンテンツ
見出しを表すコンテンツ。(見出しの要素)
フレージング・コンテンツ
段落内で使用するようなコンテンツ。(従来で言うインライン要素に相当する要素)
エンベッディッド・コンテンツ
文書内に埋め込みを行うコンテンツ。(画像やインラインフレームなど)
インタラクティブ・コンテンツ
ユーザーが操作可能なコンテンツ。(リンクやフォームの入力欄など)
  • 要素によっては、複数のカテゴリーに属している場合があります。
  • 属性などの条件により、属するカテゴリーが変化する場合があります。
  • どのカテゴリーにも属さない要素もあります。

例えば、フロー・コンテンツを入れることができると説明されている場合には、フロー・コンテンツに属する全ての要素がその対象になることとなります。

トランスペアレント

一部の要素は、トランスペアレント(透過)に分類されます。

コンテンツ・モデルの説明にトランスペアレントと書かれている場合、その要素は親要素のコンテンツ・モデルを継承することになります。