コンテンツ・モデル
コンテンツ・モデルとは
コンテンツモデルはHTML5から導入された考え方で、一言でいえばタグの配置ルールの事です。
HTMLのタグはどこにでも自由に配置してよいわけではないためそれを明文化したものです。
コンテンツ・モデルではHTMLのタグ毎に「カテゴリー」「コンテキスト」「コンテンツ・モデル」の3種類の分類が定義されています。
カテゴリー | 自身のタグのカテゴリー |
コンテキスト | 自身のタグが属することができる親要素のカテゴリー |
コンテンツ・モデル | 自身のタグの子要素とすることができるカテゴリー |
これら3分類ごとに、以下の7カテゴリーのいずれかが指定されています。
指定されるカテゴリーは1つの場合もあれば、複数指定されている場合もあります。
指定無しの場合もあります。
メタデータ・コンテンツ (Metadata-Contents) | ページ全体の情報を定義するタグ |
フロー・コンテンツ (Flow-Contents) | ページのコンテンツ内で使用するタグ |
セクショニング・コンテンツ (Sectioning-Contents) | 文章のまとまりを定義するタグ |
ヘッディング・コンテンツ (Heading-Contents) | 見出しを定義するタグ |
フレージング・コンテンツ (Phrasing-Contents) | 文章内で使用するタグ |
エンベッディッド・コンテンツ (Embedded-Contents) | 画像や動画など文章に埋め込んで使用するタグ |
インタラクティブ・コンテンツ (Interactive-Contents) | ユーザが操作するタグ |
以下で、タグ毎の属するカテゴリーを紹介します。
カテゴリー
コンテンツ・モデルのカテゴリーの概要です。
メタデータ・コンテンツ(Metadata-Contents)
ページ全体の情報を定義するタグが属します。大まかに言うとheadタグ内で使用されるタグが該当します。
<base>、<link>、<meta>、<noscript>、<script>、<style>、<title>
フロー・コンテンツ(Flow-Contents)
ページのコンテンツ内で使用するタグが属します。大まかに言うとbodyタグ内で使用されるタグが該当します。
<a>、<abbr>、<address>、<article>、<aside>、<audio>、<b>、<bdo>、<blockquote>、<br>、<button>、<canvas>、<cite>、<code>、<datalist>、<del>、<details>、<div>、<dl>、<em>、<embed>、<fieldset>、<figure>、<footer>、<form>、<h1>、<h2>、<h3>、<h4>、<h5>、<h6>、<header>、<hr>、<i>、<iframe>、<img>、<input>、<ins>、<kbd>、<label>、<map>、<mark>、<math>、<menu>、<meter>、<nav>、<noscript>、<object>、<ol>、<output>、<p>、<pre>、<progress>、<q>、<ruby>、<script>、<section>、<select>、<small>、<span>、<strong>、<sub>、<sup>、<table>、<textarea>、<time>、<ul>、<var>、<video>、<wbr>
セクショニング・コンテンツ(Sectioning-Contents)
文章のまとまりや区切りを表すタグが属します。どれもHTML5以降で導入されたタグです。
<article>、<aside>、<nav>、<section>
ヘッディング・コンテンツ(Heading-Contents)
見出しを表すタグが属します。h1~h6が該当します。
<h1>、<h2>、<h3>、<h4>、<h5>、<h6>
フレージング・コンテンツ(Phrasing-Contents)
文章内(段落内)で使用するタグが属します。HTML4やXHTMLで採用されていた分類の「インライン要素」に当たります。
<a>、<abbr>、<area>、<audio>、<b>、<bdo>、<br>、<button>、<canvas>、<cite>、<code>、<data>、<datalist>、<del>、<em>、<embed>、<i>、<iframe>、<img>、<input>、<ins>、<kbd>、<label>、<map>、<mark>、<meter>、<noscript>、<object>、<output>、<picture>、<progress>、<q>、<ruby>、<s>、<script>、<select>、<small>、<span>、<strong>、<sub>、<sup>、<template>、<textarea>、<time>、<u>、<var>、<video>、<wbr>
エンベッディッド・コンテンツ(Embedded-Contents)
文章内に埋め込む要素のタグが属します。画像や動画などを表示するタグが該当します。
<audio>、<canvas>、<embed>、<iframe>、<img>、<object>、<picture>、<video>
インタラクティブ・コンテンツ(Interactive-Contents)
ユーザが操作を行うタグが属します。ボタンやテキストボックスなどユーザが操作できるタグが該当します。
<a>、<audio>、<button>、<details>、<embed>、<iframe>、<img>、<input>、<label>、<object>、<select>、<textarea>、<video>
備考
- HTML4.01やXHTMLではインライン要素、ブロック要素という分類がありましたが、HTML5ではこれら分類は廃止されてコンテンツ・モデルに移行しました。