<!DOCTYPE>ドキュメントタイプの宣言する

<!DOCTYPE>はhtmlドキュメントが、どのバージョンのHTMLで記述されたものなのかを示すためのタグです。(正確にはタグではありません) このhtmlドキュメントがどの仕様で、どのバージョンのHTMLで作られたのかを示す事を「DOCTYPE宣言」と呼びます。

HTMLはバージョンごとに使えるタグや配置の仕方、属性の名前などが定義されてます。 これを【DTD(Document Type Definition)】(文書型定義)と呼び、Strict(厳密型)、Transitional(移行型)、Frameset(フレーム設定用)の3つが存在します。

このDTDを宣言(DOCTYPE宣言)するためには、htmlタグより上(ドキュメントの1行目)に記述する必要があります。 またDTDを宣言したら、宣言したDTDに則ったソースの記述をしなければなりません。

そして宣言するDTDの種類や宣言の有無によっても「標準準拠モード」「互換モード」というようにブラウザでの表示方法が異なります。 ですのでCSSの解釈もそれぞれのモードごとに変わります。

HTML4.01では、Strict、Transitional、Framesetの3つのDTDがありますので、それぞれ用途によって使い分けて下さい。

※HTML 4.01では宣言が必須

DOCTYPE宣言の詳しい説明は下記のページへ
HTML5と4.01のDOCTYPE宣言

使用した時の例(HTML 4.01)

Strict

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<!--省略-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<!--省略-->

Strictでは非推奨の要素・属性、フレームは使用できません。また要素の配置についても細かい制限があります。

Transitional

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!--省略-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!--省略-->

Transitionalはフレームは使用できませんが、非推奨の要素・属性は使用することが可能です。要素の配置についはStrictより緩やかな制限となっています。

Frameset

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<!--省略-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<!--省略-->

FramesetはTransitionalの条件にフレームを使用できるようにした設定となっています。

対応ブラウザなどのデータ

開始タグ <html>の前に記述 終了タグ 不要(要素ではないため)
形式 <!DOCTYPE ~>
対応ブラウザ Internet Explorer2~ , Google Chrome1~ , Firefox1~ , Opera1~ , Safari1~