HTMLはタグの書き方・配置などある程度自由に記載してもブラウザの表示上は問題ないことが多くありますが、実はバージョン等により使用できるタグやその属性、文法など、厳密にDTD(Document Type Definition)と呼ばれるもので定義されています。
互換性のポイント
実際にHTMLのバージョンを完璧に理解して制作するのは至難です。どのバージョンでも対応できるように以下のようなポイントを押さえておくことが望ましいです。
タグは小文字で記載する。
<img>タグにはalt、width、height属性を必ず記載する。
<br> のように閉じないタグは <br /> のように最後に / を記述する。
<span>~</span>の中に<div>などを入れない。
<a href="xxx">のようにタグの中のスペースは2つ連続でいれない。
<td nowrap="nowrap"> のように nowrap="nowrap" と記述する。
<option value="1" selected="selected">値は1</option> のように selected="selected" と記述する。
文法のチェックツールなどを利用する。
Another HTML-lint gateway
HTML4.01の場合以下の3種類のDTDがあります。
Strict DTD
非推奨の要素・属性、フレーム機能は使用できませn。要素の配置についても厳密になっています。 HTML4.01の仕様に従った最も厳密で正確なDTDです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Transitional DTD
非推奨要素や属性は使用できますが、フレームを使用できません。比較的制限が緩やかです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Frameset DTD
Transitional DTDとほぼ同じで、さらにフレームが使用できます。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
HTML5の場合
<!DOCTYPE html>