Dig*Dag さんの Firefox IE の表示の違いをまとめてみる という記事と、それに関わる一連の記事を読んでの感想。この人の書いている、記述した DTD によってブラウザの解釈方法が変わる、というのは正論で、決して間違ってはいないのですが、その DTD が何たるかをわかっているのだろうか、と疑問に思ったわけです。
DTD は DOCTYPE 宣言や DOCTYPE スイッチという言葉と一緒に語られることが多いのですが、DOCTYPE 宣言は文書型宣言です。文字通り文書型を宣言する宣言文なのですが、その文書型を定義する情報、すなわち文書型定義のことを DTD (
文書型定義とは HTML 文書や XHTML 文書を記述する際、文書に用いられる一連のルールなのです。 HTML 文書や XHTML 文書が定められたルールに従って書かれているかを検証するソフトなど (バリデータ) が、文書型宣言で指定された文書型定義を参照して検証するわけです。ちなみに文書型宣言内に文書型定義を記述 (内部サブセット) しても、文書型定義自体は他のファイルに記述して参照 (外部サブセット) してもよく、一般的に HTML や XHTML では W3C で用意された文章型定義を外部サブセットとして参照する方法がとられます。
文書型宣言の有無や、宣言される文書型定義の違いで、 IE などのブラウザなどでは CSS の解釈方法を変えていたりします。マイクロソフトではこれを DOCTYPE スイッチと呼んでいます。 HTML 文書では文書型宣言は必須 (XML のサブセットである XHTML は XML
さて、最初の Dig*Dag さんの記事ですが、このページでは DTD を文書型定義でなく文書型宣言として読むとしっくり来ます。