Operaのposition:absoluteでバグ?

幅と高さを指定した要素の子要素の中にabsoluteを指定した要素があると、幅と高さを指定した要素の内部の高さが、さらに親要素に反映されてしまう。

・・・微妙に日本語が変だな。

要素要素うざいので百聞は一見にしかず。つーわけで実物を用意した。

Opera position:absolute バグ?

赤いボックスの中に定義リストが含まれている。定義リストの子要素っつーかdd全てにheight:100px;

んで、そのdd群の中にひとつだけabsoluteなspanを含んでいるddがある。

赤と青のボックスにはwidthとheightが指定され、はみ出した要素は自動的に処理するようにoverflow:autoが指定されているのだが、それを無視するかのようにボックスの要素内の高さが親要素に伝わってしまい、bodyにスクロールバーが表示されているのがわかるだろうか。

なお、ddの右端にabsoluteで表示したいので、当然ddにはrelativeがついている。

bodyっつーか親要素にoverflow:hiddenで解決でね? と思いがちだが、ホイール回せばしっかりスクロールするんでダメ。

一応、Firefoxでは問題無し。IEも天然なので問題な・・・ってIE7、おまえもか。

んー、どうしようこれ。他の方法でも一応なんとかはなるんだが・・・めんどいな。