1. ホーム
  2. Web制作
  3. HTML/Xhtml

DOCTYPE記述の見落としの解析

2022-01-30 09:51:09
doctypeもその一つです。
<!DOCTYPE HTML PUBLIC "-/W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
1.doctypeとは
  doctypeタグは、各htmlの先頭に書かれている、文書のdtd(文書型定義)を指定するためのもので、以下のような形になっています。
  <!DOCTYPE RootElement Availability "URI" [declarations]>
いくつかの一般的なdoctypesなど。
HTML 4.01: Strict<!DOCTYPE HTML PUBLIC "-/W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional<!DOCTYPE HTML PUBLIC "-/W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose. dtd">
XHTML 1.1 Strict DTD<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- strict.dtd">
2. doctypeでできること
  doctypeを指定するかしないか、また異なるdoctypeを指定すると、異なるブラウザモードが有効になります。これはhtml、css、jsにいくつかの影響を及ぼし、その中で最も有名なのはいわゆるボックスモデル問題です。
  2.1 なぜ複数のモードが存在するのか
   時代が流れて戦国時代になったとき、みんなで意見を言い合うと世の中が混乱することがわかったので、味方をつけようという話になり、w3cが政権をとることになったのです。しかし、また問題が出てきて、例えばIEは、もはや優位に立つことはできず、標準に合わせる流れになっていますが、ブラウザが標準にしか対応していないと、これまでの多くのページが何らかの問題を起こすことになるのです。
  doctypeの指定がない場合はオリジナルモードを使用し、クワークモードと呼ばれ、doctypeの指定がある場合は標準に従うため、スタンダードモードまたはストリクトモードと呼ばれる。この間、Mozillaを代表とする数名が、標準モードでのimgの解析はあまり適切ではないと考え、個人的な意見を保留し、いくつかの特定のdoctypeのケースを指定する場合は準標準モード(Almost Standards Mode)を採用しましたので、Doctypeによるブラウザモードの活性化、または@Dance with the Netの翻訳を参照して下さい。
  2.2 各モードの具体的な効果
  Quirksモードとstrictモードについては、@ppk bullがうまくまとめてくれています。
3.推奨されるdoctype
  <!DOCTYPE HTML>
  理由:html5をサポートし、認識されない場合はstrict modeで対応するため。
  ブラウザの互換性の問題を解決するために、img { display: block } などのリセットcssを追加します。
  なお、現在多くの人が使っている <!DOCTYPE HTML PUBLIC "-/W3C//DTD HTML 4.0 Transitional//EN"> と <!DOCTYPE HTML PUBLIC "-/W3C//DTD HTML 4.01 Transitional//EN"> はいくつかの主要ブラウザではクセモードに相当するだけ、つまり省けるものであることに注意してください。