●どのバージョンのHTMLであるかの宣言が必要です。文書型宣言と言います。もちろん無くても自分の所で見ているだけなら適当に表示してくれますが、インターネットの世界ではいろいろな環境の機械で様々なブラウザで見られるので、自分の作っている環境でうまく見えてもどこでもうまくいくとは限りません。そこで自分が基づいて書いたHTMLのきまり(文書の型)を宣言し、それに基づいて表示してもらうように要請します。それがこの文書型宣言です。
文書型は下図のようにたくさんあります。現在はHTMLからXHTMLへの移行途中にあります。HTMLの中にもバージョン4.01以前との互換をとるために「移行型」などを残しているのでさらに複雑です。XHTML1.1以降ではこの移行型はなくなりますから、厳密型の流れに乗りましょう。
HTML | HTML 4.01 厳密型 | HTML 4.01 移行型 | HTML 4.01 フレーム型 |
↓ | ↓ | ↓ | |
XHTML | XHTML 1.0 厳密型 | XHTML 1.0 移行型 | XHTML 1.0 フレーム型 |
↓ | ↓ | ↓ | |
XHTML 1.1 | × | × |
XHTMLはHTMLを拡張可能なマーク付け言語 (XML) の書き方に従って書くようにしたもので、HTMLに残るマーク付けの曖昧な部分をなくし、文書の内容をコンピュータプログラムで処理しやすくすることを指向している。最近のワープロの文書ファイルはXMLで出力されていたりする。
●普通の人は次のように書くとよいでしょう。書く場所は<html>の前、つまり文書を読む前に宣言を聞いてもらうということになります。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> ………
●または、http:以下を省略して
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> ………
●W3Cの文書には"http://www.w3.org/TR/html4/strict.dtd"を加えるように明記されていのでずが、W3Cのページでもこれを省略しているものもあります。
●実は HTML 4.01仕様は、3つの文書型定義(DTD)を規定しています。同じバージョンでもサポートする要素が異なっています。自分の事情に合わせて次の3つの何れかの文書型宣言をすることになっています。
●これは、推奨しないこととなった要素や属性を含まず、またフレーム設定用の要素・属性をも含みません。授業ではほぼこちらにそって勉強してきました。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
●これは、厳密型DTDのすべての要素・属性に加えて、推奨しない要素や属性も含む(推奨しないもののほとんどは視覚的プレゼンテーションに関わるもの)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
●これは、移行型DTDのすべてに加えて、フレーム用の内容を加えたものです。フレームの記述のあるページにはこれをつけます。(授業で作ったページでは frame01.html だけです)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
●文書型の宣言の前に XML に準拠した文書であることを示す宣言が必要になります。また html タグの中にいくつかの記述が必要ですので、合わせてここに書いてあります。
<?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">
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">