The W3C Markup Validation Service で、任意のサイトの HTML の文法チェックができる。そこで手始めに「マスタカのホーム」をチェックしてみた。エラーの嵐だった…。
エラーがあっても、Web ブラウザはうまく解釈して表示してくれる。ただ、後述の HTML の仕様にはなるべく沿うようにしたいし、Firefox では OK だが、IE だとレイアウトが崩れるなんてことはなるべく避けたいので、頑張ってゼロにしてみた。以下、HTML の説明。
まず知っておかなくてはいけないことは、HTML にはバージョンがあるということ。最新の 4.01 の仕様書は以下から参照できる。
「7.2 HTMLバージョン情報 」に書かれているとおり、HTML 4.01 仕様では、3 つの DTD(Document Type Definition、文書型定義) を規定しており、各 HTML ファイルには次のいずれかの文書型宣言を含める必要があるようだ。
HTML 4.01 Strict DTD (厳密型)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional DTD (移行型)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset (フレーム設定型)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
HTML4.0 から、見た目のレイアウトなどのデザインは、スタイルシートを使うことが前提とされているとのこと。そういう意味から「厳密型」と「移行型」が定義されているようだ。
「フレーム設定型」はフレームのサイトに使用する。ただし、前に述べたようにデザインには HTML は関与しない流れになっているので、フレームのサイトは作らない方が良いと思う。
IE や Firefox には、HTML の仕様にはない独自規格がある。例えば、<blink>〜</blink>
や <embed>〜</embed>
など。これらを使うと前述の診断でエラーとなる。この状態で DOCTYPE 宣言をするのは意味がないので、その場合は DOCTYPE 宣言は行わず Web ブラウザに表示を任せてしまった方が良いと思う。
この chalow のページも、使わざるを得ない(もしくは代替の方法が分からない)箇所があったため、DOCTYPE 宣言はしていない。
「マスタカのホーム」と「マスタカ宛メッセージ送信」はエラーゼロに出来たため、宣言している。ただ、HTML ソースを見ると DOCTYPE 宣言が前述のものと違うはず。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
これは XHTML で書いてあるため。XHTML の説明は次の記事 [2009-05-28-2] をどうぞ。
参考にしたページ: