DTD (文書型定義) は、XML または (X)HTML のファイル タイプを定義するために使用される一連の構文規則です。ブラウザはこれを使用して、ドキュメントの種類を特定し、解析に使用するプロトコルを決定し、ブラウザ モードを切り替えます。
実際、DTD は SGML 言語ファミリーのすべてのドキュメント タイプを定義できますが、煩雑すぎるため、XML スキーマの方が一般的です。
ほとんどの HTML エディターは DOCTYPE 宣言の行を追加しますが、DOCTYPE は最も無視されやすい部分です。 以下でわかるように、DOCTYPE ステートメント はオプション ではありません。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
DOCTYPE は、ドキュメント タイプと DTD 仕様を宣言するために使用されます。その主な用途の 1 つは、ファイルの正当性の検証です。 ファイル コードが不正な場合、ブラウザによる解析時にエラーが発生します。 HTML エディターは通常、構文の強調表示とともに合法性の検証も提供します。
DOCTYPE 宣言には、DTD ファイルの標準バージョンと URI が含まれます。一般的に使用される DOCTYPE 宣言には次のものがあります。
次のコードは http://www.w3school.com.cn/tags/tag_doctype.asp からのものです
<!DOCTYPE html>
この DTD にはすべてが含まれていますHTML 要素と属性。ただし、プレゼンテーション要素や非推奨の要素 (フォントなど) は含まれません。フレームセットは許可されません。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
この DTD には、プレゼンテーション要素や非推奨の要素 (フォントなど) を含む、すべての HTML 要素と属性が含まれています。フレームセットは許可されません。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
規格を十分に満たし、不正なHTMLに可能な限り互換性のあるページを表示するため。 ブラウザの製造元は通常、次の 2 つのブラウザ モードを提供します。
混合モードでは、ブラウザは IE6 などの古いブラウザの動作を模倣し、これに基づいて新しい標準機能と互換性があります。 混合モードは、互換モード、奇妙なモードなどとも呼ばれます。
ブラウザは、異なる DOCTYPE に基づいて異なるレンダリング方法を選択します。これは、DOCTYPE 切り替えと呼ばれます。 実際、DOCTYPE スイッチングは、古い Web ページを識別し、それとの互換性を保つために使用されます。
次の場合、ブラウザは標準モードでレンダリングします:
次の場合、ブラウザは混合モードでレンダリングします。 :
最新の標準を使用してページを作成しているが、DOCTYPE 宣言を与えていない場合、これは何らかの奇妙な動作が発生する可能性があります。 たとえば、ボックスのモデルやウィンドウのサイズが正しくありません。したがって、Web サイトのすべてのページに合法的な DOCTYPE 宣言を行うようにしてください。