はじめに
毎回なんとなく書いていたけど、ちゃんと説明できるようにならなきゃと思って、調べてみました。
DOCTYPE宣言について
DOCTYPE宣言(文章型宣言)といい正式な呼び方はには「ドックタイプ宣言」だそうです(今までドクタイプって読んでました…)。
これは簡単に言うと文章の仕様やバージョンをブラウザに伝えるためのもので、HTML5以前のバージョンではDTDと呼ばれるものをHTML(XML)に結びつけるものでした。
例えばHTML4.01だとこんな感じのDOCTYPE宣言になります。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
DTDとは
DTDは **Document Type Definition(文章型定義)**の略で、どんなタグがどんなタイミングで使えるのか、などの文章の構造が指定されていました。
試しに、HTML4.01のDOCTYPE宣言で書いたURLに飛んでみるとイメージしやすいかもしれません。
HTML5だと…
一方、HTML5では大変シンプルなDOCTYPE宣言です。
<!DOCTYPE html>
これはHTML5では、DTDの文章にあたる情報が仕様書の中に同じ言語で記述されており、DTDと繋げる必要がないためです。
ではなぜDOCTYPE宣言が必要なのでしょうか?
それにはwebサイトの歴史が関係しています。
HTML5でDOCTYPE宣言が必要な理由
HTML言語が標準化してきた1990年代、作成されたページはDOCTYP宣言がなされていないものも多く、それに困った各種ブラウザが、宣言がないものは旧式のページとして認識し、モードを切り替えるようにした。
その仕様が続いているため、DTDがなくなった今でもDOCTYPE宣言を記述して、旧式のページと認識されないようにしているというわけです。