Web 開発の特定の側面にかなり不慣れなので (私は常にフロントエンドよりもバックエンドに集中してきました)、Web ページの冒頭で行われる DOCTYPE 宣言について心配する必要があるかどうかについて、誰か考えを教えてもらえますか?
最も一般的な HTML 4.01 は、この標準に準拠するように Web アプリを作成する必要がありますか?
Web 開発の特定の側面にかなり不慣れなので (私は常にフロントエンドよりもバックエンドに集中してきました)、Web ページの冒頭で行われる DOCTYPE 宣言について心配する必要があるかどうかについて、誰か考えを教えてもらえますか?
最も一般的な HTML 4.01 は、この標準に準拠するように Web アプリを作成する必要がありますか?
John Resig (jQuery)は、この問題について発言権を持っています。さらに、DocType は MSIE6が適切なボックス モデルを使用するのに役立ち、サイトを検証する手間も軽減します (これは開発にとって良いことです。デバッグと考えてください)。
Web ブラウザーを標準モードに切り替えるため、ページ内の最初のステートメントとして DOCTYPE を必ず含める必要があります。これは、quirks モードとして知られる下位互換モデルに従うのではなく、少なくとも W3C および IETF 標準を使用してページをレンダリングしようとすることを意味します。
私自身の観察によると、HTML 4.01 よりもXHTML 1.0 Transitionalの使用が増えています。XHTML 1.0 Transitional は、面倒なことをせずに XHTML の利点の一部を提供する、一種の中途半端なものです。
DTDは、検証とエンティティ定義に使用されます。これらは、特定のマークアップ言語とバージョンの構文要件を大まかに指定します。
検証は、バリデーターを使用してDTDに対して実行される場合があります。または、解析中にユーザーエージェントによって実行される場合があります(一部の検証用HTML / XMLパーサーの場合のように)。DTDで定義されたエンティティは、ユーザーエージェントがサポートしている場合に利用可能になる可能性があります。
DOCTYPE宣言は、ドキュメント内のインライン/外部DTDを参照するためのマークアップ言語の方法です(少なくともHTMLおよびXMLでは)。
これで、ブラウザーのHTML(text / html)パーサーに関する限り、DOCTYPE宣言はレンダリングモード(DOCTYPEスイッチング)を制御するだけです。モードは、参照されるHTMLのバージョンと、DTD URIが指定されているかどうかに応じて、Standards、Almost Standards、またはQuirksになります。実際のdtdは使用されません。
たとえば、DTDURIを使用するXHTML1.0 Transitional doctypeは、ブラウザーをほぼ標準モードにするだけであり、DTDURIを使用するXHTML1.0 Strict doctypeは、ブラウザーを標準モードにする必要があります。さらに、HTML5のdoctype <!DOCTYPE html>は、すべてのブラウザーを標準モードにし、IE8 +をスーパー標準モードにします(したがって、レンダリング時に最新のブラウザーのように動作します)。ただし、一般的に、DoctypeはJavascriptとDOMのサポートにほとんど影響を与えません(ただし、特にIE8では例外があります)。
ブラウザの場合、ほとんどの場合、完全な標準モードが必要なので、本当に必要なのは<!DOCTYPEhtml>だけです。これ以上のことはブラウザの助けにはなりません。ただし、そのDoctypeはHTML5用です。HTML4.01DTDまたはXHTML1.0DTDに準拠する場合は、HTML 4.01strictまたはXHTML1.0strictを適切なDTDURIとともに使用して、完全な標準モードを取得する必要があります。
HTML5に準拠する場合は、http: //validator.nu/で構文をテストできます。DTDに対して検証せず、DTD検証よりも高度です。また、DTDよりもHTML 5をより適切に反映し、HTML5はブラウザーが実際にサポートするものをより適切に反映するため、構文チェックはブラウザーの世界との互換性が高くなります。
HTML4.01またはXHTML1.0DTDに準拠する場合は、W3Cバリデーターを使用してください。これらのDTDは、ブラウザがサポートするものを反映しておらず、対象となる仕様を大まかに反映しているだけであることに注意してください。これらのDTDは、大まかな構文エラーをキャッチするため、およびそれらを最大限に活用する非ブラウザーユーザーエージェントのためのものです。また、ブラウザがtext/htmlとapplication/xhtml+xmlの間でどのように異なる動作をするかについても何も知りません。
ブラウザのDoctypeスイッチングについて読むには:
http://www.mozilla.org/docs/web-developer/quirks/doctypes.html
XHTML 1.0 Transitional などの DOCTYPE を使用する最大の理由は、IE の CSS ボックス モデルを他のブラウザーと同じにするためです。これにより、CSS レイアウトに関する多くのフラストレーションが回避されます。ここで詳しく説明されています: http://css.maxdesign.com.au/listamatic/about-boxmodel.htm