HTML5とHTML4.01 正しいDOCTYPE宣言で仕様に準拠しよう
htmlファイルの先頭に必ず記述してあるDOCTYPE宣言ですが、何となくコピペして使っていませんか?DOCTYPE宣言は、簡単に説明すると、文書の仕様をブラウザに伝えるためのものです。
一見、わかりにくいタグですが、調べてみると、使うべき宣言がわかってきます。
SEO対策を行うには、正しいタグで記述することも大切です。
少しずつでもタグの記述方法を覚えましょう。
ということで、今回はDOCTYPE宣言について、重要なポイントを絞って説明していきたいと思います。
※DOCTYPE宣言とは、Document Type Definition(DTD)のことで、文書型宣言とも呼ばれます。
目次
HTML4.01の3種類のDTD
HTML 4.01厳密型DTD(strict)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
厳密型DTDで、W3Cが非推奨とする要素と属性は使えません。フレームも使えません。
cssを理解している方向けで、スタイルを全てcssで設定していれば全く問題ありません。
HTML 4.01移行型DTD(Transitional)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
移行型DTDで、W3Cが非推奨とする要素と属性が使えますが、フレームは使えません。
htmlにスタイルを突発的に追加することがあるなら、この宣言を設定しておきましょう。
非推奨とされる要素と属性
非推奨の要素と属性を下記にまとめました。strictを宣言する際の参考にしてください。
背景が赤い箇所が非推奨とされる要素と属性で、それぞれcssで代替可能なスタイルもまとめてあります。
非推奨の要素 | 非推奨の属性 | 代替できるCSS |
---|---|---|
<applet> | ||
<basefont> | size | font-size |
<body> | bgcolor | background-color |
background | background-image | |
text | color | |
link | (a:link)color | |
vlink | (a:visited)color | |
alink | (a:active)color | |
<br> | clear | clear |
<caption> | align | text-align、caption-side |
<center> | text-align | |
<dir> | ||
<div> | align | text-align |
<dl> | compact | |
<font> | size | font-size |
color | color | |
face | font-family | |
<h1>-<h6> | align | text-align |
<hr> | size | height |
width | width | |
align | text-align、margin | |
noshade | ||
<html> | version | |
<iframe> | align | vertical-align、float |
<img> | align | vertical-align、float |
border | border | |
hspace | margin | |
vspace | margin | |
<input> | align | vertical-align、float |
<isindex> | ||
<legend> | align | |
<li> | type | list-style-type |
value | ||
<menu> | ||
<object> | align | vertical-align、float |
border | border | |
hspace | margin | |
vspace | margin | |
<ol> | type | list-style-type |
start | ||
compact | ||
<p> | align | text-align |
<pre> | width | width |
<s> | text-decoration | |
<script> | language | |
<strike> | text-decoration | |
<table> | align | float、margin |
bgcolor | background-color | |
<td> | width | width |
height | height | |
bgcolor | background-color | |
nowrap | white-space | |
<th> | width | width |
height | height | |
bgcolor | background-color | |
nowrap | white-space | |
<tr> | bgcolor | background-color |
<u> | text-decoration | |
<ul> | type | list-style-type |
compact |
HTML 4.01 フレーム設定型DTD(Frameset)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
フレーム設定型DTDで、フレームを使用したファイルに使います。
最近では、フレーム分けされたサイトはあまり見かけないため、ほぼ使わないDTDです。
システム識別子の省略による表示モード
システム識別子は省略できますが、その有無によってDOCTYPEスイッチが変わり、各ブラウザの表示モードが変更されます。
標準モードは、W3C標準仕様に則ってレンダリングされ、互換モードは、古いブラウザに互換性を持ち、cssの解釈が変わります。
システム識別子の有無と表示モード一覧
DTD | システム識別子 | IE | Firefox | Opera |
---|---|---|---|---|
Strict | 有り | 標準モード | 標準モード | 標準モード |
無し | 標準モード | 標準モード | 標準モード | |
Transitional | 有り | 標準モード | 標準モード | 標準モード |
無し | 互換モード | 互換モード | 互換モード |
このように、Strictを宣言する場合、システム識別子を省略してもレンダリングには問題ないでしょう。古いですが、Mac IE6だと互換モードとなります。
Transitionalの場合、標準モードでレンダリングするならシステム識別子は省略しないで、記述します。
標準モードと互換モードの具体的な表示の違いがこちらです。
- ボーダー、パディングの解釈
- センタリングの解釈
- フォントサイズの解釈
HTML5のDOCTYPE宣言
<!DOCTYPE html>
HTML5では、DOCTYPE宣言は1種類で、シンプルな記述となります。
これは、無くても表示されますが、その場合、互換モードで表示されてしまうため、必ず設置しておきます。
DOCTYPE宣言についてまとめ
今回は、HTML4.01のDOCTYPE宣言を中心にまとめましたが、最近では、HTML5を良く見かけるようになりました。
以前のdivのような意味を持たないタグをセマンティックなマークアップができることから、今後もHTML5は増えていくと思います。
ただし、IE8への対応も必要となるため、必要に応じて使い分けてください。
また、セマンテックに関しては下記の記事も参考にしてみてください。