doctype  変更 : 文書型宣言

カテゴリ
  • なし

説明

一応断っておくと、これはタグではないし要素でもない。

HTML5では単に<!doctype html>とだけ書いておくと良い。 これは文書の一番始めに書く。要素名や属性名と同じく大文字小文字を区別しないので、<!doctype html>でも<!DOCTYPE HTML>でも、中二病っぽく<!dOcTYpe hTmL>とかでも良い。

なぜdoctypeの項目を書いたかと言うと、各ブラウザの独自実装だった互換モード(Quirks Mode)がHTML5で公式仕様になってしまったからだ。 ここから先は、昔話が不要な人は読まなくて良い。 WHATWGに互換モードの詳しい挙動の仕様があったりする。

HTML4時代までは、文書型宣言はこんな感じだった。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

互換モードには3種類あって、互換モード(Quirks Mode)/限定互換モード(Limited Quirks Mode)/非互換モード(No Quirks Mode)の3種類がある。 何の互換かと言うと、以前のバージョンのブラウザとの互換。特にMicrosoft社は今までのブラウザについて鬼のように互換性を保つ努力をしてきている。 昔はInternet Explorerという腐った牛乳ブラウザが大人気だったんだ。

以下の場合に互換モードになる。

上記以外で、以下の場合に限定互換モードになる。 そうでもない場合、非互換モード(標準準拠モード)になる。 つまりHTML5の場合は非互換モードになる。

細かい挙動の差については、解説しない。

ちなみに、文書型宣言の話をしていると、よくこわーいお兄さんやオジサンが寄ってくるから、夏の夜とかには話をしちゃいけないゾ☆