HTML 4.01

仕様

ブロックレベル要素とインライン要素

一般に、新しく行を起こしそれ特有のレイアウトで整形される要素を ブロックレベル要素という。body要素の直接の 子要素として現れることができるのはブロックレベル要素のみである。 HTML 4.01 Strict のブロックレベル要素は以下のとおり。

p, h1, h2, h3, h4, h5, h6, ul, ol, pre, dl, div, blockquote, form, hr, table, fieldset, address

行を変えずに、文字列の持つ意味的なかたまりを局所的に表して 整形されるものをインライン要素(または行内要素)という。 インライン要素は上に挙げたブロックレベル要素以外の全ての要素で たとえば、

tt, i, b, big, small, em, strong, dfn, code, samp, kbd, var, cite, abbr, acronym, a, img, object, br, script, map, q, sub, sup, span, bdo, input, select, textarea, label, button

などが該当する。 何の要素にも含まれない単なる文字データ(#PCDATA)もインライン要素である。

bodyの直接の子要素はブロックレベル要素でなければ ならないので、以下の2つの例のうち前者は正しくない。

  1. 正しくない例
    〜〜〜略〜〜〜
    <body>
    はじめまして
    </body>
    〜〜〜略〜〜〜
    
  2. 正しい例
    〜〜〜略〜〜〜
    <body>
    <p>はじめまして</p>
    </body>
    〜〜〜略〜〜〜
    

子要素の制約

body要素の中には(直接的には)ブロックレベル要素しか置けない。 このようにある要素の中に、ブロックレベル要素を置けるのか、インライン要素 を置けるのか、あるはどちらを置いてもいいのかが決まっている。

大原則として、インライン要素の中にはブロックレベル要素を置けない。 ブロックレベル要素を子要素として持てる要素は

パラグラフを意味するp要素は、上記に含まれていない。 p要素は直接の子要素にインライン要素のみ持つことが許されてい るので、以下の記述は誤りとなる。

<p>パラグラフ中に
   <ul>
    <li> 箇条書き
   </ul>
箇条書きは書けない。</p>

非推奨要素

以下の要素はHTML 4.01 Strictでは使えない。

applet, area, basefont, center, dir, menu, font, isindex, s, strike, u

非推奨属性

ある要素の実体に、付随的な意味を持たせる性質のことを属性 という。以前良く用いられていた以下の属性はHTML 4.01 Strictでは使えない。

align, width, size, border, background, text, link, vlink, alink

参考文献

yuuji@koeki-u.ac.jp