HTML は、World Wide Web 上でハイパーテキストを公開するための世界共通言語です [1]。 Tim Berners-Lee が HTML の元の定義を確立するために SGML を簡略化した 1982 年から、2001 年の XHTML1.1 仕様のリリースまで、HTML は複数のバージョンがある国際標準になりました [2]。仕様の各バージョンは、法的な構造、要素、属性を記述する機械可読言語で定義されています。これが文書型定義 (DTD) です。
DTD は、HTML 文書の先頭にある文書型宣言 (DTD 宣言、doctype[3] と呼ばれます) を記述します。これは、文書と DTD 命令の間のリンクです。たとえば、HTML4.01 Strict の doctype は次のとおりです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd ">
これは、ドキュメントで使用されている HTML のバージョンを示します。これは、ブラウザなどのツールがドキュメントを解析するときに必要とする最も重要な情報です。たとえば、W3C の検証ツールはこれを使用して構文をチェックし、エラーを指摘できます。
初期のブラウザでの標準の誤った実装、プライベート拡張の急増、および前方互換性に関する初期の標準自体の混乱により、当時のドキュメントには doctype も DTD への直接参照も存在せず、新しい標準の実装も困難になりました。ブラウザがそれらを区別できなかったため、採用され、人気が高まりました。 Web 標準に従って作成された Web ページと古い慣例に従って作成された Web ページに対処するために、Todd Fahrner は 1998 年に「トグルを思いついた」方法を提案しました [4]。これにより、ブラウザは 2 セットのレンダリング モードを提供できるようになります。 : つまり、完全な doctype を使用すると、ドキュメントは W3C 標準を使用して解析されます。それ以外の場合は、古い方法で解析されます。
この方法は実用的で簡単かつ効果的です。 2 年後、これは Mac バージョンの IE で初めて使用され、すぐに他のブラウザ メーカーもそれを採用し、doctype スニッフィング (doctype スニッフィングまたは doctype スイッチング) が誕生しました。ブラウザはこれを使用して、エンジンが標準モード、準標準モード、または互換モードのいずれを採用するかを決定します。これは、HTML と CSS の解析、CSS レイアウト、および JavaScript スクリプトに大きな影響を与えます [5]。できるだけ標準モデルを使うべきであることは間違いありません。
HTML5 はまだドラフト段階ですが、最新のブラウザー Firefox3.5、Chrome2、Safari4、および IE8 では、特に Google Wave のリリースにより、HTML5 の推進が新たな盛り上がりを見せています。 HTML5 は SGML に基づいておらず、DTD もありませんが、上位互換性のために、doctype スニッフィングの事実を受け入れ、doctype が text/html の唯一のモード変換ステートメントであり、他の用途がないことを定義しています。その doctype は非常に簡潔です: <!doctype html>[6]。
IE8 は、上位互換性を解決するために X-UA-Compatibility ステートメント [7] を採用していることは注目に値します。その結果、IE8 のブラウザーのレンダリング モードは、Doctype スニッフィングだけでなく、X-UA-Compatibility ステートメントにも依存します。これはパターンの判断をより複雑にするだけでなく [8]、Web デザインにおける漸進的強化の考え方にも違反します [9]。
Web 標準への道には、現実主義に満ちた前方互換性だけでなく、理想主義に満ちた後方互換性も必要です。これは、Web が将来的に適切に機能することを保証するための希望です。標準、シンプルさ、段階的な機能強化という考えに基づくと、現時点でのページの最適なソリューションは次のとおりです。
<!doctype html> … <meta http-equiv="X-UA-互換" content="IE=Edge"> …
注記:
[1] HTML は世界中でハイパーテキストを公開するための共通語です
ワイドウェブ
[2] http://zh.wikipedia.org/wiki/Html
[3] DTD 宣言は、以前の仕様ではドキュメント タイプ宣言と呼ばれることがよくありました。
DTD と混同されやすいです。
[4] http://web.archive.org/web/20030212115103/http://www.geocrawler。
com/archives/リスト名.mbox/123/1998/7/0/1037920/
[5]doctypeでブラウザモードを有効にする
[6] http://www.w3.org/TR/html5/syntax.html#the-doctype
[7]ドキュメントの種類を超えて、IE8 と上位互換性のある Web 標準化
[8] http://dancewithnet.com/2009/06/14/activating-browser-modes
-with-doctype/#ie8modes
[9] Web 標準の将来はブラウザ テクノロジーに依存しますか?
原文: http://ued.koubei.com/?p =928