世の中には様々な Web ブラウザがあります。これらはそれぞれクセがあり HTML や CSS の解釈方法も様々です。それゆえに Web ブラウザを騙すような手段 (たとえば CSS ハック) などが生まれることになりました。その中でも IE (IE7 よりも前のバージョン) がもたらした影響は大きいでしょう。
作り手側からすると『IE さんなんて最初から存在しなければ良かったのに』と本気で吐露したくなることが多々あります。現実では IE6 がないとまともに閲覧できないサイトもあり IE は必要ではあるのですが『最初から存在しなければこんなことにはならなかったのでは?』とも思うからです。(なんか離婚直前の夫婦の心境みたいだw)
たとえば、私は今とある画像にテキストを回り込み (Floating) させ、次ブロックでの Top margin による調整 (Clearance) で四苦八苦しています。Firefox や Opera では、フツーの HTML/CSS を書けばいとも簡単にできるのですが IE6 ではレイアウトが崩れます。(ちなみに、ねすけはもっとひどい) このレイアウト崩れは改行コードによる悪さという非常に有名な問題で対処することはできました。しかしブラウザのウィンドウ サイズを変更していたりすると、描画が一部されず真っ白になってしまいます。
いろいろ調べてわかったのは、DIV 要素で左右に分割したレイアウトでは回り込みの際の描画がウィンドウのサイズによっておかしくなるということでした。一旦その描画されない領域外にスクロールして元の位置に戻すと描画されます。ああ! もう! そんな問題はコードでは対応できねーな、できねーよ。(By 桃白)
再現するための条件がわかっても『なぜそうなる?』『どうすればいいの?』になってしまうのが、こういう問題の素晴らしいところ。今回レイアウトをブラウザによって切り分けるなんて妥協には何の意味もないので、諦めて別のレイアウトで考えることにしました。まあ、十中八九こういった場面では諦めるのが 1 番ですね。
それにしても描画されなくなるとか... ひどい。(見せたくても見せられないので何かサンプルをうpしてみようかな)