標準準拠と後方互換

んもーIEFirefoxの見た目ずれまくり!とよく見るとDOCTYPE宣言忘れててIE後方互換モードってた。
なのでDOCTYPE宣言書いたところ、それでも直らない。。。
変わらず後方互換モードのままみたい。widthの値がpaddingの値を含んだものになってるから小っさい。

どうもIEではDOCTYPE宣言の前のXML宣言を書くと必ず後方互換モードとして解釈されるとのこと。
一体どうすりゃいいのさ、今さらwidthとpaddingは分けて指定しろってか!(自分が悪い


と思ったけど、XML宣言消してみたら期待通りの見た目になった!なぜ?
せっかくXHTMLを使うようになってきたので、ここはしっかりと違いを把握しておかないと。


IE6とFirefoxで見ると、
XHTMLの場合はXML宣言するとIE後方互換Firefoxは標準準拠。XML宣言なしだと両方とも標準準拠。
要はIEの場合一行目にDOCTYPE宣言を書かない限りは後方互換になるということか。
うーん、どうするのが一番いいんだろう。
DTDは「<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">」とURLを指定してやればTransitionalでもStrictでも標準準拠になるそうです。


悩んだ末、結局XHTMLにこだわってwidthとpaddingの指定を切り分けて書くことにしました。疲れた。。。
まぁこれでIE5.5でも表示できるので前向きに捉えよう。