ブロックレベルとインラインレベルの分類はなくなった
HTML5より以前は、bodyタグの中で使う要素を、ブロックレベルの要素、インラインレベルの要素という分類の仕方をしていました。そしてこの2種類での分け方は、bodyタグ内での要素の配置の可否にも関係していました。
HTMLでは要素を入れ子構造でマークアップしますが、例えば「インラインレベルの要素の中にはブロックレベルの要素を配置できない」というように、ブロックレベルなのかインラインレベルなのかが配置の可否の基準になっていたわけです。
これがHTML5では、ブロックレベル・インラインレベルという分類自体しなくなりました。ではHTML5ではどう変わったのか説明します。
HTML5ではどう変わったのか
HTML5でも、bodyタグの中で使う要素は、以前と変わらずブロックレベルかインラインレベル、どちらかの性質を持ちます。例えば pタグは、HTML5でもブロックレベルの挙動をします。
ただ、要素の配置に関して、ブロックレベルだからとかインラインレベルだからという考えで判断しなくなりました。
ではどうなったのか。HTML5では文章構造も重視して要素を分類します。よって、ブロックレベル・インラインレベルという分類ではなく、複数のコンテンツカテゴリを用意しこれらに分類します。
HTML5では、要素の配置に関して、~コンテンツの要素の中には△△コンテンツの要素を配置できるという基準になります。
HTML5での配置の可否の基準
HTML5では、要素の配置の可否は、その要素がどのコンテンツカテゴリに属するかで決まります。
「~要素のカテゴリは△△コンテンツなので、この中には、□□コンテンツに属する要素が配置できる」というルールになります。
自分の中にどの要素を配置できるかは、中に配置する要素がどのコンテンツカテゴリになるかによるわけですが、このモデルをコンテンツモデルと呼びます。