メインコンテンツへスキップ

文書型宣言


1.概要

文書型宣言は、
SGMLやXML, HTML文書を、
文書型定義(DTD)と
結びつけるための宣言です。

  1. <!DOCTYPE html>
  2. <html lang="ja">
  3. <head>
  4. </head>
  5. <body>
  6. </body>
  7. </html>

DTD とは、Document Type Definition (文書型定義) の略語で、SGMLXML文書において、どのような要素をどのように配置することが許されるかの定義です。(HTMLは、SGMLを元に開発された言語です。)

文書型宣言 (Document type declaration)は、HTML文書の前(HTMLタグの前)に書くべき宣言であり、HTMLタグではありません。SGML由来のマークアップ宣言 (markup declaration) です。大文字と小文字を区別しないので、<!doctype html> とか <!DOCTYPE HTML> でも同じです。

HTML5SGMLベースではなくなったので、文書型定義(DTD)と結びつけるという事はなくなりました。HTML5では DOCTYPEスイッチ の為に記述します。


2.マークアップ宣言

マークアップ宣言は、
マークアップの
解釈方法を
指定します。

マークアップ宣言は SGML由来であり、HTMLタグなどのマークアップの解釈方法, 定義を指定している 文書型定義(DTD)と結びつけます。また、CSSの認識や表示の仕方を切り替える機能もあります。

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  • <! : マーク宣言開始区切り子
  • DOCTYPE : 宣言の種類(文書型宣言)
  • HTML : 文書型名(ルート要素名)
  • PUBLIC : 外部識別子(外部に公開されている文書を参照。DTDを記述する方法もある。)
  • "-//W3C//DTD HTML 4.01//EN" : 公開識別子(参照する文書)
    • -//W3C : 所有者識別子
      • -// : 未登録所有者識別子(+// : 登録がある)
      • W3C : 所有者(W3C)
    • // : 区切り子
    • DTD HTML 4.01//EN : 文書識別子
      • DTD : 公開文書種別
      • HTML 4.01 : 公開文書記述
      • // : 区切り子
      • EN : 公開文書言語(英語)
  • "http://www.w3.org/TR/html4/strict.dtd" : システム識別子 (DTD の所在を示す URI)
  • > : マーク宣言終了区切り子

HTML5

  1. <!DOCTYPE html>

HTML5SGMLベースではなくなったので、文書型定義(DTD)と結びつけるという事はなくなりました。
記述を省略した場合は互換モードとなります。

HTML4.01 Strict

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

HTML4.01厳密型です。W3Cが非推奨とする要素属性は使えません。フレームも使えません。システム識別子を省略した場合は互換モードとなります。

HTML4.01 Transitional

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

HTML4.01移行型です。W3Cが非推奨とする要素属性が使えますが、フレームは使えません。システム識別子を省略した場合は互換モードとなります。

HTML4.01 Frameset

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

HTML4.01フレーム設定です。W3Cが非推奨とする要素属性が使えますし、フレームも使えます。システム識別子を省略した場合は互換モードとなります。


3.DOCTYPEスイッチ

文書型宣言によって、
CSSの認識や
表示の仕方に
違いがあります。

文書型宣言によって、CSSの認識や表示の仕方をW3C標準仕様に則って行う標準モードと、古いブラウザに互換性を持たせる互換モードとが切り替えられます。
HTML5では文書型宣言の有無, HTML4.01ではシステム識別子の有無が切り替えのスイッチとなります。