ホームページ  >  記事  >  ウェブフロントエンド  >  DOCTYPE タイプ_HTML/Xhtml_Web ページ制作の詳細な紹介

DOCTYPE タイプ_HTML/Xhtml_Web ページ制作の詳細な紹介

WBOY
WBOYオリジナル
2016-05-16 16:45:511168ブラウズ

HTML で DOCTYPE を宣言する場合、通常は次の型があります。




はい、HTML と XHTML、そして Transitional と Strict があります。名前が示すように、XHTML はドキュメントが XML 形式で記述されていることを意味し、HTML はドキュメントが HTML 形式で記述されていることを意味します。 Transition はドキュメントが Transitional.dtd または Loose.dtd の要件を満たすことを意味し、Strict はドキュメントが strict.dtd の要件を満たすことを意味します。しかし実際には、次のような誤解がよくあります。
(1) ドキュメントが XHTML として宣言されている場合、ドキュメントは完全な XML 形式でなければなりません。
(2) ドキュメントが Strict として宣言されている場合、ドキュメントは Strict モードでレンダリングされる必要があります。それ以外の場合は、Quirks モードでレンダリングされます。
これら 2 つの理解は非常に簡単ですが、私たちはよくこの間違いを犯します。
まず第一に、ドキュメント宣言は XHTML と HTML であり、ドキュメントの解析 (つまり、ブラウザによるドキュメントの分析) には直接関係しません。実際、ブラウザがドキュメントを解析する方法は、サーバーがドキュメントを提供する形式によって異なります。通常は「text/html」と「application/xhtml xml」の2通りの方法があります。 XML 形式で解析できるのは、「application/html xml」形式で提供されるドキュメントのみです。ただし、ブラウザーの履歴により、すべてのブラウザーが「application/xhtml xml」形式のドキュメントをサポートしているわけではありません。IE7 より前のバージョン (IE7 を含む) では、この形式のドキュメントが見つかった場合、別のファイルとして保存するようユーザーに求められます。 IEの普及を考慮し、現在はほとんどのドキュメントが「text/html」形式で提供されています。 「text/html」形式で提供されるドキュメントは、HTML のセマンティクスに従って解析されます。ドキュメント内の TAG が正しく閉じられていない場合でも、HTML は引き続き正しく解析されることが知られています。と表示されます。したがって、XHTML が "text/html" の形式で提供されている場合 (ほとんどの場合)、DOCTYPE で XHTML を宣言したとしても、ドキュメントは XML 形式で解析されないという保証はありません。ドキュメントは XML 仕様に厳密に従います。実際、多くの専門家は、ドキュメントが「application/xhtml xml」として提供されていない場合は、HTML として宣言する必要があると推奨しています。
第二に、ブラウザがドキュメントをレンダリングする方法は、宣言した DTD によって決まりません。実際、DOCTYPE と DTD を宣言すると、ドキュメントは厳密モード (または標準モード、多くのブラウザにはほぼ標準モードも含まれます。ここでは区別されません) でレンダリングされます。 DOCTYPE のないドキュメントの場合、Quirks モードでレンダリングされます。したがって、ブラウザのレンダリング モードは、宣言する DTD と直接の関係はありません。
最後に、現在のブラウザでは Strict.dtd として宣言しても Transitional.dtd として宣言しても違いはありません。 Strict.dtd は Transitional.dtd や Loose.dtd よりもはるかに厳密です。strict.dtd では多くの要素を使用できません。ただし、ブラウザの互換性により、DOCTYPE で Strict.dtd を宣言した場合でも、ブラウザが strict.dtd で許可されていない要素に遭遇した場合でも、ドキュメントを正しく表示できます。おそらくブラウザは DTD を考慮していないのだと思います。たとえば、TAG iframe は strict.dtd には存在しませんが、DOCTYPE で strict.dtd が宣言されていて TAG iframe が使用されている場合でも、ブラウザ (IE7、IE8、FF3.0、Safari 3.0 を含む) はドキュメントを正しく表示するには、ブラウザは、宣言された DTD に従ってドキュメントを解析しません。現在、ドキュメントが strict.dtd または Transitional.dtd に準拠しているかどうかを保証できるのは、W3C Validator などの一部のオンライン バリデータを通じてのみです。ブラウザは適切なサポートを提供しません。もちろん、実際には、宣言した DTD に従って厳密にドキュメントを作成できれば、将来ブラウザが DTD に厳密に従っているときにドキュメントでエラーが発生しないことが最善です。
したがって、
(1) ドキュメントが「text/html」として提供されている場合は、それを HTML として宣言する必要があります。これは、IE7 を正しく表示したい場合に特に当てはまります。
(2) ドキュメントが XHTML として宣言されている場合は、「application/html xml」の形式で提供する必要があります。
(3) ドキュメントが Quirks モードでレンダリングされていないことを確認するために、ドキュメントの前で DOCTYPE と DTD を宣言してみてください。
(4) DTD を宣言する場合は、DTD の要件に厳密に従って文書を作成する必要があります。特に Strict.dtd を宣言する場合は、使用できない要素に注意する必要があります。
注: 時間の経過とともに、HTML と XHTML、Strict.dtd、Transitional.dtd に対するブラウザのサポートは改善されるでしょう。ご使用のブラウザが IE7、IE8、FF 3.0、Safari 3.0 よりもはるかに高い場合は、この記事の適用可能性に注意する必要があります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。