DOCTYPE宣言/XML宣言

DOCTYPE宣言(文書型宣言)とは、HTMLがどの仕様に準拠しているかを表します。
HTMLのバージョンや、基準としているDTD仕様のURLなどが指定されます。
DOCTYPE宣言を変えることによって、解釈(レンダリング方法)も変わるので、表示が変わる場合があります。

DOCTYPE宣言を省略することはできますが、ブラウザによってどのHTMLのバージョンで解釈されるかわからないので、省略しないほうがいいです。

DOCTYPE宣言の構造

一般にDOCTYPE宣言は次のようになっています。

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

これをそれぞれ説明すると

<!DOCTYPE >

これからSGMLのDTDを宣言することを示します。

HTML

文書タイプ名が「HTML」であることを示します。

PUBLIC

PUBLICの場合、このDTDが公開されたものであることを示し、続いて記述されるのが公開識別子であることを表します。
DTDが特定のマシン上にある場合はSYSTEMが使われます。 ほとんどの場合がPUBLICですが、SYSTEMの場合はたとえば次のようになります。

<!DOCTYPE only SYSTEM "file:///var/docs/dtd/only.dtd">
"-//W3C//DTD HTML 4.01 Transitional//EN"

SGMLで定められた「フォーマル公開識別子(FPI)」という書き方に従って、公開文書(ここではDTD)を特定するための情報を記述します。

-//W3C//DTDHTML 4.01 Transitional//EN
所有者識別子区切り公開文種別公開文記述区切り公開文言語

所有者識別子 (OwnerID)

公開文書の所有者を示します。ISO(国際標準化機構)出版物はその出版物番号を用います。 JISなどの国家規格あるいは工業規格もしくはISO 9070に従って割り当てた所有者(登録所有者)の場合は先頭に+//を、それ以外の未登録所有者は先頭に-//を加えます。 W3CはこのHTMLを策定したWorld Wide Web Consortiumを示します。 HTML2.0だとIETFになります。

公開文種別 (Public Text Class)

公開されている文書の内容を示します。この場合はDTDを公開しています。必ず大文字でなければなりません。

公開文記述 (Public Text Description)

公開文書がどんなものであるかを記述します。この場合はHTMLのバージョン4.01のために公開している文書ということになります。

公開文言語 (Public Text Language)

この公開文書(つまりDTD)が記述されている言語のコードを示します。ENは英語。もし日本語で定義されたDTDならJAとなります。 必ず大文字でなければなりません。なお、これはHTML本文を記述する言語とは関係ありません。

"http://www.w3.org/TR/html4/loose.dtd"

準拠するDTDのURL、パスを示します。

モード

英文 日本語
Quirks mode互換モード
Almost Standards modeほぼ標準モード
Full Standards mode標準準拠モード
Strict厳密に準拠
Transitional過渡的

DOCTYPE宣言の一覧

DOCTYPE宣言/XML宣言
  IE6 Firefox
Opera
Safari
Mac IE5
分類:なし
DOCTYPEなし 互換モード 互換モード 互換モード
HTML4.01 Strict
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 標準モード 標準モード 互換モード
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 標準モード 標準モード 標準モード
HTML4.01 Transitional
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 互換モード 互換モード 互換モード
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 標準モード 標準モード 標準モード
XHTML1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 標準モード 標準モード 標準モード
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 互換モード 標準モード 標準モード
XHTML1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 標準モード 標準モード 標準モード
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 互換モード 標準モード 標準モード
XHTML1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 標準モード 標準モード 標準モード
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
互換モード 標準モード 標準モード

IE6ではDOCTYPE宣言より前に記述があると互換モードになります。
このため<?xml?>などを<!DOCTYPE>より前に書くと、<!DOCTYPE>は無視され、互換モードになります。

スポンサーリンク

関連記事

スポンサーリンク

固定配置ボックス内のアンカーに対するマウスオーバー効果が効かない

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る