DOCTYPE宣言がないとIE7でも表示は古いまま

補足:XHTMLを使う場合の注意点
■XML宣言を書くとIE6で困る

XHTMLを使う場合は、文法上、DOCTYPE宣言よりも前に「XML宣言」と呼ばれる記述が必要です。ところが、IE6では、DOCTYPE宣言の前に余計な記述があると、DOCTYPE宣言を無視してしまいます。(Mac版のIE5や、Windows版でもIE7は問題ありません。)

XML宣言を1行目に記述したXHTML1.1のDOCTYPE宣言は、以下のようなものです。(文字コードがSHIFT-JISの場合)



先頭に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としてのバージョンは別なため。)


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。