body要素

概要

HTML文書の本体を表す要素です。

要素の内容

ブロックレベル要素だけを子要素にすることができます(また、HTML4.01 StrictとXHTML1.1では、一つ以上の要素を含む必要があります)。ただし、Transitional/Framesetでは普通のテキストとインライン要素も含むことができます。

属性

固有属性

body要素の固有属性はすべて非推奨とされています。HTML4.01 Transitional/Frameset、XHTML1.0 Transitional/Framesetのみで利用できます。

属性名 属性値 説明
background URI 非推奨属性。背景に敷き詰める画像のURIを指定できます。
text Color 非推奨属性。文字色を指定できます。
bgcolor Color 非推奨属性。背景色を指定できます。

汎用属性

id, class, title, langxml:lang), dir, style, xmlns(XHTML1.1のみ)

onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup, onload, onunload

説明

body要素は文書の本体を表す要素です。html要素の子要素としてhead要素の次に一つだけ記述します(Framesetの場合はnoframes要素の子要素として記述します)。

body要素の子要素として記述できるのはブロックレベル要素だけです。インライン要素や普通のテキストを直接記述することはできません(Transitional/Framesetでは許容されていますが)。

タグの省略

html要素head要素と同様にHTMLでは開始タグと終了タグの省略が認められています(XHTMLでは認められていません)。head要素とbody要素の境界にscript要素やobject要素が無ければ、タグが無くてもbody要素の範囲は明らかであるからです。ただし、タグの省略が認められていても普通は省略しません。

非推奨属性

Transitional/Framesetでは文書全体の文字や背景の表示を制御するための属性が用意されています(すべて非推奨とされています)。これらの属性を指定するときは注意が必要です。

text、bgcokor、link、vlink、alinkの5つの属性は必ずセットで指定しなければなりません(どれか1つを指定したら、残りの4つも同時に指定する必要があります)。HTMLの仕様ではデフォルトの色は定められていません。一般的なブラウザでは背景色が白で文字色は黒です。しかし、すべてのブラウザがそうであるとは限りません(背景色が黒で文字色が白かもしれません)。そのため、文字色だけを変えるとブラウザによっては背景色と重なって文字が読みにくくなる可能性があります。背景色だけを変える場合も同様のことが言えます。文字色と背景色の両方を指定すればこのような問題は回避できます。

同様の理由で、background属性を指定するときも他の5つの属性を同時に指定する必要があります。

CSS signature

ユーザスタイルシートの利用者がサイトごとのスタイルシートを指定できるように、body要素にサイト固有のid属性を付けることがあります(CSS signatureと呼ばれます)。このとき指定するid属性値は他のサイトと重複しないようにする必要があります。そのため、絶対に重複することのないURI(URL)を元にid属性を付けるのが一般的です。

Note: 最近のブラウザではサイト別にスタイルシートを適用できるような仕組みが用意されるようになってきています。そのため、このような識別子の必要性は薄れています。

関連要素