« IEとCSSとXHTML | メイン | ウェイクボード »

いい加減なIE6.0の文書型宣言

これでもかというくらいIEの文書型宣言について探し回った結果、IE6.0のDOCTYPEはいい加減だということがわかった。スタイルシートでレイアウトする以上避けては通れない道、ということで正攻法(標準準拠モード)でいくことにしよう。

以下dinosaur's square からの引用

xml宣言が必要な場合
文字コードがunicodeでない場合で,例えば <?xml version="1.0" encoding="shift_jis"?><!DOCTYPE html ….
≫ unicodeにxml宣言を除く以外に打つ手なし.

<!DOCTYPEで始まらなければ問答無用で無効.逆にそれさえあれば,それだけでもいい.タイプは判別しない.
○: <!DOCTYPE hoge>
○: <!DOCTYPE >
×: <!xOCTYPE >
×: hoge<!DOCTYPE hoge>
×: <?xml version="1.0" encoding="shift_jis"?><!DOCTYPE html …

上記のようにどのようにしてもIE6.0では<!DOCTYPE 以前に文字が入ると互換モードと解釈されてしまう。文字コードがUTF-8もしくはUTF-16以外に入力義務があるようだが、やはり一般的なShift-JISを基準に考えたいものだ。ここでxml宣言を外せば良いのだが、それではimgまわりのpaddingや、大きな問題のwidthの解釈が狂う。しかし出来れば標準準拠モードで制作していく癖をつけておきたい。

ということでAlternative Design Project さんを参考にして標準で、IE6はCSS切り替えで制作していくぞっ!サイトまた作り変えなきゃ(何回やってんだよ!)...CSS駆け出しの私としてはただただ実験あるのみ。DOCTYPEの問題解明に長時間ハマってしまった...眠ぅっ。

参考サイト