Ayano Miyayama's Diary

宮山 彩野のホームページ(http://z45om201.starfree.jp/)付属の日記です。

表示乱れの原因

先日ホームページの表示乱れについて報告しましたが、その原因が分かってきました。

結論から言いますと「IE6の解釈が良くない」ということです。

以下wikipedia:cssより引用
「ボックスにwidth属性を設定したとき、W3Cのボックスのモデルでは内容の横幅であると解釈される。そしてパディングとボーダー分の横幅は要素の横幅に追加される。
他方マイクロソフトのボックスのモデルではwidth属性は内容の横幅とパディングとボーダー分を足したもの、即ち要素全ての横幅になる。(中略)
しかしInternet Explorer 6では!DOCTYPEが正確ならば標準準拠モードに移行出来る(ただXMLXHTMLの場合、XML宣言を仕様通り書くと過去互換モードでレンダリングされるバグがある)。」

つまりXHTMLを仕様書通りに表記しIE6で読み込んで表示させたものと、同様にしてFirefoxなどで読み込ませたものは違って見えるということです。
これを回避する方法ももちろんあり、例えば入れ子にする方法があります。
また少々イレギュラーですがXHTMLを仕様書通りに記述しない方法もあります。

…しかしせっかくソースをHTMLからXHTMLに書き直したのですが、現在HTML5の策定が進行中だそうで、あと5年くらいで書き換えの必要性が出てくるやもしれません。