補足:XHTMLを使う場合の注意点
■XML宣言を書くとIE6で困る
XHTMLを使う場合は、文法上、DOCTYPE宣言よりも前に「XML宣言」と呼ばれる記述が必要です。 ところが、IE6では、DOCTYPE宣言の前に余計な記述があると、DOCTYPE宣言を無視してしまいます。 (Mac版のIE5や、Windows版でもIE7は問題ありません。)
XML宣言を1行目に記述したXHTML1.1のDOCTYPE宣言は、以下のようなものです。(文字コードがSHIFT-JISの場合)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
先頭にXML宣言を書いてしまうと、IE6ではDOCTYPE宣言を無視してしまうため、「互換モード」で表示されてしまいます。 ですから、(IE6でも標準モードで描画させたければ)XHTMLを使う場合はXML宣言を省略して、以下のように記述しましょう。
■文字コードがUTF-8なら文法的にも省略できる
XHTMLファイルの文字コードが「UTF-8」の場合は、XML宣言を省略できることになっています。 ですから、文字コードをUTF-8にしてXHTMLを記述した上でXML宣言を省略するなら、 文法的にも問題なく、IE6でも問題のないXHTMLになります。
■文字コードがそれ以外でも、実質問題にはならない
文法上はともかく、実際にはXML宣言を省略しても、「標準モードで描画させる」という点に関しては問題ありません。 文字コードがSHIFT-JISなXHTMLでXML宣言を省略しても、どのブラウザも「標準モード」で描画してくれます。 ですから、XHTMLを使う場合は、どんな場合でもXML宣言を省略しておくという方法もあります。
XHTMLのDOCTYPE宣言
XHTML 1.1 以外のDOCTYPE宣言でも、標準モードで描画されます。 たとえば、以下のようなものが使えます。
●XHTML 1.0 Strict
●XHTML 1.0 Transitional
●XHTML Basic 1.0
XHTML Basicは、携帯端末向けのXHTMLです。 PC上のブラウザでも、標準モードで描画されます。 携帯端末上でどのように表示されるかは、各端末のブラウザによって異なります。
携帯端末向けページなら、IE6で表示させる必要はあまりないでしょうから、DOCTYPE宣言の前にXML宣言を書いておいた方が良いかもしれません。
XML宣言は、文字コードがSHIFT-JISコードなら
と記述します。EUCコードなら
と記述します。JISコードなら
と記述し、UTF-8なら(省略可能ですが)
と記述します。
XHTML 1.1の場合でも、XML宣言のversion属性の値には上記のように「1.0」と書きます。 (XHTMLとしてのバージョンとXMLとしてのバージョンは別なため。)