<!DOCTYPE>NN すべて IE すべて HTML 3.2  

<!DOCTYPE...>

HTML 終了タグ : 使用不可  

DOCTYPE 要素は HTML 要素ではなく、SGML (Standard Generalized Markup Language) フォーマットのコメントです。<!-- ...--> スタイルの HTML フォーマットのコメントと同じです。この要素は、後で説明する XHTML ドキュメントの場合を除き、常にドキュメントの先頭に、かつ <HTML> 要素の前に記述する必要があります。この要素は、HTML ソースコードが従うドキュメントタイプ定義 (DTD) をブラウザに指示します。すべてのブラウザには、ブラウザがサポートする要素と要素の属性を定義するデフォルトのドキュメントタイプがあります。ただし、ドキュメントタイプをサポートするためのブラウザの内部プログラミングにバグなどの問題がある場合があります。最新の DTD のドキュメントタイプを指定しても、コーディングされない要素や属性を古いブラウザがサポート可能になるわけではありません。逆に Strict DTD を指定すると、ブラウザが下位互換および独自の要素や属性を認識できなくなったり、サポートできなくなったりします。

DOCTYPE 要素には、ラベルのない属性値がいくつか含まれます。これらの属性値によって、最上位のドキュメントタグ (ここでは html)、DTD を管理する組織、実際の DTD ファイルのアドレス (システム識別子と呼ばれる)、DTD のわかりやすい名前 (必要に応じてバージョン番号を含む) などの詳細を指定します。次の例では、DOCTYPE は、使用が推奨されていないすべての要素と属性を含む HTML 4.01 DTD を参照します。

次の例では、使用が推奨されていないアイテムやフレームを含まない XHTML 1.1 DTD を指定しています。

また、XHTML DTD を指定する場合は、DOCTYPE 宣言の前に、次の SGML 処理命令のいずれかを記述する必要があります。

後者の処理命令では、文字セットエンコードも設定しています。これは <META> タグでも設定できます。W3C HTML および XHTML バリデータは、ドキュメントで何らかの方法で文字セットエンコードのタイプを宣言することを推奨しています。

ほとんどの場合、Web に発行する前の HTML ソースコードの妥当性の検証を容易にするために、Web 作成者は DOCTYPE 要素をそのソースコードに記述します。ただし、最新のブラウザの中には、HTML ドキュメントの先頭にある DOCTYPE コメントの詳細に基づいて、ビヘイビアを若干変更するものがあります。IE 6 および Netscape 6 は、DOCTYPE 要素の属性値の詳細に基づいて 2 つの "モード" のいずれかで動作します。一方のモードは、W3C の標準以前からある実装および W3C の標準から派生した実装との下位互換性を保つために用意されています。もう一方のモードは、ブラウザを W3C 勧告に厳密に従うように動作させるために用意されています。この 2 つのモードの主な違いは、現在の CSS および DOM の仕様で詳細に定義されている微細なレイアウトにあります。単純なレイアウトでは、モードの違いはほとんどわかりません。作成するページがテーブルのスタイルシートや背景、フォームコントロールの位置揃え (特にテーブル内)、および正確なフォントサイズや間隔に依存する場合や、また IE では、CSS を使用してドキュメントの端や位置揃えした要素のサイズをピクセル単位で指定している場合は、ドキュメント内の DOCTYPE の詳細に注意する必要があります。

互換性の詳細をすべて説明することは困難ですが、一般的な推奨事項をいくつか説明します。まず、現在のページやテンプレートのレイアウトに満足している場合は、DOCTYPE 要素に下位互換モードを指定するのが得策です。Mozilla のエンジニアはこのモードを "quirks" モードと呼んでいます。Microsoft ではこのモードに特別な名前を付けていません。新しいコンテンツを作成する場合、特に新しいブラウザ (バージョン 6 以降) 用のコンテンツを作成する場合は、"strict" (Navigator) または "standards-compatible" (IE) モードを指定してください。

DOCTYPE 要素の属性値は、一般的に使用されているものだけでも驚異的な数に達しており、ブラウザのモードとこれらの属性値との対応規則もブラウザ間で一致していません。ただし、次のような一般的な DOCTYPE タグは、使用しているブラウザに関係なく、バージョン 6 のブラウザを下位互換モードにします。

次のいくつかの点に注意してください。まず、上の例はすべて HTML 4.01 以前の HTML DTD を宣言しており、XHTML DTD は宣言されていません。2 番目に、上の例はいずれも参照 .dtd ファイルへのシステム識別子 URI を含んでいません。また、DOCTYPE 要素を完全に省略した場合は、ブラウザは古い内部 DTD に相当するものを適用します。

バージョン 6 のブラウザを最新の標準準拠モードにする一般的な DOCTYPE タグを次に示します。

HTML 4.x/Strict DTD および XHTML DTD を指定すると、URL の有無に関係なく、常に標準準拠モードに切り替わります。HTML 4.x Transitional および Frameset DTD を指定し、その URL を指定しても、標準準拠モードに切り替わります。

最新のブラウザの DOM および CSS 機能に関する DTD の選択による影響については、第 9 章の client- および offset- プロパティ、body オブジェクト、および document.compatMode プロパティの説明と、第 10 章の height および width 属性の説明を参照してください。付録 E には、最もよく使用される HTML 4.01 DTD および XHTML 1.0 DTD での妥当性の検証用に用意されている HTML 4 の要素と属性を示しています。

 
オブジェクト参照
 
[window.]document.firstChild
 
要素固有の属性

属性のラベルなし

 
要素固有のイベントハンドラー属性

なし

langNN 3 IE 4 HTML 4  

lang="languageCode"

オプション  

要素の属性値およびコンテンツに使用される言語。ブラウザはこの情報を使用して、合字 (特定のフォントでサポートされたり、書き言葉で必要になった場合)、疑問符、およびハイフネーションの処理などの詳細に関して、コンテンツの適切な表示を行います。その他のアプリケーションや検索エンジンでは、スペルチェック辞書の選択やインデックスの作成にこの情報を利用する場合があります。

 
 
<SPAN lang="de">Deutsche Bundesbahn</SPAN>
 

大文字と小文字を区別しない言語コード

 
既定値

ブラウザの既定値

 
オブジェクト参照
 
[window.]document.getElementById(elementID).lang