HTMLのDOCTYPE宣言とは何ですか?

HTML文書型宣言は、とも呼ばれDOCTYPE、すべてのHTMLまたはXHTML文書で必要なコードの最初の行です。DOCTYPE宣言は、ページがで書かれているHTMLのバージョンについては、Webブラウザへの指示である。この性を保証ウェブページが別のWebブラウザで同じように解析されていること。

HTML 4.01では、DOCTYPE宣言は文書型定義(DTD)を参照します。DTDは、XMLドキュメントの構造と法的要素を定義します。HTML4.01はStandardGeneralized Markup Language(SGML)に基づいているため、DOCTYPE宣言でDTDを参照する必要がありました。

また、HTML 4.01ための文書型のいずれかの宣言を必要としstricttransitionalまたはframesetDTD、異なるユースケースとそれぞれ下記のとおり。

  • 厳密なDTD:CSSサポートの拡大に​​伴ってW3Cが段階的に廃止されると予想される属性と要素を除外するWebページに使用されます
  • 移行DTD:CSSサポートの拡大に​​伴ってW3Cが段階的に廃止されると予想される属性と要素を含むWebページに使用されます
  • フレームセットDTD:フレームのあるWebページに使用されます

対照的に、HTML5の宣言DOCTYPEははるかに単純です。つまり、SGMLに基づいていないため、DTDへの参照は必要ありません。HTML 4.01とHTML5DOCTYPEの比較については、以下の例を参照してください。

HTML5以降のDoctype構文:

厳密なHTML4.01のDoctype構文:

移行HTML4.01のDoctype構文:

フレームセットHTML4.01のDoctype構文:

歴史

HTMLの形成期の間、Web標準はまだ合意されていませんでした。ブラウザベンダーは、彼らが望む方法で新しい機能を構築するでしょう。競合するブラウザについてはほとんど懸念がありませんでした。

その結果、Web開発者はサイトを開発するためのブラウザーを選択する必要がありました。これは、サポートされていないブラウザではサイトがうまくレンダリングされないことを意味しました。この状況は続くことができませんでした。

W3C(World Wide Web Consortium)は、この状況を処理するための一連のWeb標準を作成しました。すべてのブラウザベンダーとWeb開発者は、これらの標準に準拠する必要があります。これにより、Webサイトがブラウザー間で適切にレンダリングされるようになります。

標準によって要求される変更は、いくつかの既存の慣行とはかなり異なっていました。それらに固執すると、既存の非標準準拠のWebサイトが破損します。

この問題を処理するために、ベンダーはブラウザにレンダリングモードをプログラミングし始めました。Web開発者は、HTMLドキュメントの先頭にdoctype宣言を追加する必要があります。doctype宣言は、そのドキュメントに使用するレンダリングモードをブラウザに指示します。

3つの別々のレンダリングモードは、一般的にブラウザ間で利用可能でした。

  • 完全標準モードでは、W3CWeb標準に従ってページがレンダリングされます。
  • Quirksモードでは、標準に準拠していない方法でページがレンダリングされます。
  • ほとんどの標準モードは完全な標準モードに近いですが、機能は少数の癖をサポートします。

HTML5の現代では、Web標準はすべての主要なブラウザーに完全に実装されています。Webサイトは通常、標準に準拠した方法で開発されます。このため、HTML5 doctype宣言は、完全な標準モードでドキュメントをレンダリングするようにブラウザに指示するためにのみ存在します。

使用法

Doctype宣言は、コメントを除いて、HTMLドキュメントのコードの最初の行である必要があります。コメントは、必要に応じてその前に置くことができます。最新のHTML5ドキュメントの場合、doctype宣言は次のようになります。

詳しくは:

もはや一般的には使用されていませんが、以前のバージョンのHTMLには他にもいくつかのDoctype宣言型があります。XMLドキュメントには特定のバージョンもあります。これらの詳細を読み、それぞれのコード例を確認するには、ウィキペディアの記事を参照してください。

W3からのメモ

MDN用語集エントリ

W3Schools

「Quirksモード」と「Standardsモード」の簡単な説明