Block

ブロック水準要素 (HTML)

[12] HTML4 のブロック水準要素 (block-level elements) は、 段落やリストや見出しのような要素の集合でした。

代替

[1] ブロック水準要素は、 HTML4 や XHTML1 の時代の要素の内容モデルを厳密化する流れの中で生み出された分類でした。

[2] 現実にはこの流れは一部の専門家が従うだけで、ほとんどの著者には無視されました。 空想から現実への転換を指向した HTML5 の開発の中で、 ブロック水準要素の制約は廃止されました。

[13] ブロック水準要素は HTML4 時代の概念です。 HTML5 ではフロー内容と語句付け内容の差分にほぼ相当します。

要素型級 %block (HTML)

[11] HTML 4 の要素型級 %block:

DTD の注釈にはブロック状要素 例: 段落や並びと説明されています。

noframes 要素型は HTML 4 フレーム集合 DTD でも %block に含まれてはいますが、上位の (frameset 要素の子供の) noframes 要素が入れ子を禁止しているので %block として使うことができません。

仕様書:

文脈

[3] HTML4 の厳密DTD では、基本的にブロック水準要素を内容に含めることができる要素の子供としては、 ブロック水準要素だけを認めるという内容モデルになっていました。

[4] 例えばそのような要素である form 要素の子供として、 ブロック水準要素である div 要素と行内要素である a 要素を入れることは不適切とされていました。

DTBook

[5] HTMLもどきの DTBook にも同じような %block; がありました。

関連

[14] CSS にもブロック水準要素の概念があります。HTML のブロック水準要素は利用者エージェント・スタイル・シートによって CSS のブロック水準要素やそれに類する方法でレンダリングされますが、 著者スタイル・シートによって上書きし、他の方法でレンダリングすることもできます。 HTML と CSS の2つの「ブロック水準要素」の概念は混同しやすく著者の混乱を招いたため、 Web Applications 1.0 は途中でブロック水準要素を廃止し、 代わりにフロー内容、語句付け内容などの概念を導入しました。

メモ