ホスティングサービス:ファーストクリエイト

ホスティング、社内ポータルサイトのファーストクリエイト

ホームページを作ろう!:DOCTYPEについて

普段はWEB制作ソフトが自動的に挿入してくれる以下のソースに関して、意識されている方は少ないと思いますが、W3Cではページの先頭に、このDOCTYPE宣言を記述することが望ましいと記載されています。 私自身、”このDOCTYPEで制作しよう”と決めた後は、特に意識していません。ですが、制作していく上で、対応するタグに違いが発生してしまいます。

ページの先頭に正しいDOCTYPEがあれば、対応しているブラウザーなら可能な限り宣言に見合った表示動作をしますが、DOCTYPEが書いてなかったり、書いてあっても正しい形式になっていなければ、ブラウザーは従来互換モードになって、かつて好き勝手にページ記述仕様を拡張していたブラウザーと同じように動作(表示)するようです。ちなみにMozilla系ブラウザー(NetScape等)の場合、HTML 4.01を宣言すれば標準仕様準拠モードになり、HTML 4.0以前の仕様を宣言した場合は、HTML 4.0一部の宣言形式を除いて、従来互換モードに切り替わります。 ソースの1行目ですので、もう一度ご自身のホームページはどのDOCTYPEになっているか見直してみましょう。

HTML 4.01の場合

Strict … HTML 4.01に対して厳密かつ正確に従う指定
非推奨要素や属性、またフレームを使用することができません。要素の配置についても厳しい制限があります。HTML4.01の本来の仕様に従った最も厳密で正確なDTDです。

  • URLを含めた指定
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  • URLを省いた指定
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

Transitional … Strictより緩やかな指定(フレームは不可)
非推奨要素や属性は使用できますが、フレームを使用することができません。要素の配置については比較的制限が甘くなっています。

  • URLを含めた指定
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  • URLを省いた指定
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Frameset … Transitionalにフレームを加えた指定
上記のTransitional DTDとほぼ同じですが、フレームが使用できます。

  • URLを含めた指定
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
  • URLを省いた指定
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">

使用例


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>無題ドキュメント</TITLE>
</HEAD>
<BODY>



</BODY>
</HTML>

どのバージョンを宣言すればいいのか判らない場合は、HTML 4.01 Transitionalを宣言しておけば、まず問題ないでしょう。最近のブラウザーならどれでも正しく動作(表示)されるとおもいます。
なお、これからCSSを導入されようとする方は、XHTMLを宣言したほうが後々よろしいかと考えられます。ここではXHTMLの宣言のみ記載いたしますが詳しい内容は次回にしたいと思います。

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

2006年1月5日(木)

≪BACK