positioniseverything.net では数年前からIEの主要な「勘違い」が指摘されてきました。Microsoftの開発者たちによるIEブログでは、このサイトで指摘された問題をほぼ全て解決!と言っています。具体的には?
- いないいないばぁのバグ → floatしたdivの横に普通にコンテンツを出したいとき、divをclearすると、なぜかfloatされたdivの横に出る筈のコンテンツが消えるという奇怪な現象を起こらなくしたらしい。先週私はこれと格闘しました → 祝。
- 勝手に横幅を引き伸ばすバグ → 横幅をpxで設定しているのにもかかわらず、URLなど途中で切れないテキストが入ってしまったとき、勝手に横幅を拡張しないようにしたらしい → 祝。
- %(パーセンテージ)がわからないバグ → もし、marginを比率で指定している場合、marginはその指定されているboxの横幅を参考にするべきですが、そのbox の横幅が、親のboxの横幅に依存している場合、IEはどうやってmarginを取っていいのか途方にくれる、というバグを修正したらしい → 祝。
- line-heightがへんてこなバグ → テキスト内にIMG, INPUT, TEXTAREA, SELECT そしてOBJECTが内在しているとき、つまり、text text text <img src="#" /> text text などとなっているとき(絵文字とか、こんな感じですね)、line-heightが突然狂う、というバグを修正したらしい → 祝。
- 混乱したborderのバグ → IE6では、divのなかに複数のdivがあって、その2つ目以降のdivのmargin-topが、「-1px」など、0より下の値が定義されており、さらにその2つ目のdiv、あるいはそのchild elementにボーダーが設定されているとき、IEは拒否反応を示してやけっぱちになる、という大人気ない行動を改善したらしい → 祝。
- listのbgが消えるバグ → floatされたdivがrelativeで位置づけられていたとき、中にあるlistに設定されたbackgroundが無視される奇妙な現象を修正したらしい → 祝。
- ギロチンバグ → boxの中にあるもうひとつのboxが、floatされているがclearされておらず、さらに、floatされているboxのあとに来る、floatされていないコンテンツに含まれるのリンクで:hoverが指定されているとき、floatされている部分の下のほうが、チョッキリ切られてしまうという残酷なバグを修正したらしい → 祝。
- スクロールできないバグ → ページのコンテンツがrelativeにpositionされており、高さや横幅が定義されてないとき、その中にabsoluteにpositionされたboxたちが存在すると、たとえ(absolute内のコンテンツを見るのに)必要であってもスクロールバーを出さないバグを修正したらしい → 祝。
- かってにコンテンツを繰り返すバグ → 何回かfloatを繰り返すと、時に、最後にfloatされたelementの中にあったtextがその最後のelementの後に重複して現れるという脅威の現象を壊滅したらしい → 祝。
- イタリックで横幅がわからなくなるバグ → 読んで字のごとく、イタリックだと横幅を指定しても無視する、という失礼を改めたらしい → 祝。
- 2倍の値のmarginをつけるバグ → 例えば、float: left; されているに100pxのmargin-leftを指定すると、つまり、floatの方向と、marginの方向が同一だった場合、太っ腹にも与えた marginの2倍である200pxもmarginをくれる、というバグを修正したらしい → 祝。
- 奇妙なインデントのバグ → inline elementであるイメージやテキストが、floatされたboxに隣接するとき、そのテキストやイメージは、floatされたboxに与えられたはずのmarginを受け継いでしまう、というバグを修正 → 祝。
- 3pxの悪魔、のバグ → floatされたboxの横に来るテキストは、微妙な3pxの隙間を持つことになる、という奇怪な現象を解決 → 祝。
- 最初の文字がないバグ → boxの中にboxがあり、内側のboxにテキストが入っており、letter-spacingが設定されているとき、最初の文字が消えてしまう!という怪奇現象を解消 → 祝。
- inline listのバグ → boxに横幅がpxで指定されており、中にあるlistに 'display: inline'と'white-space: nowrap'が指定してあり、さらのこのlistの横幅が、上側のboxで指定された横幅を上回ってしまう場合、boxは勝手に横幅を拡張してしまう、というバグを改正 → 祝。
ああ、つかれた。ほかにもIEBlogでは直した無数のバグを列挙しています。さて、これでCSSコーダーの頭痛は、いったいよくなるのでしょうか。