まとめ ブログ ダウンロード 掲示板 メール

れぶろぐ

< 2008-02-04 (月) 2008-02-13 (水) > 最新


2008-02-08 (金)

position:relative; と overflow:hidden; 絡みの IE のバグ?

また IE のバグっぽい現象に遭遇した。 うまく説明できないが、position: relative; を使う時、 overflow: hidden; を同時に設定しないと動作が変になることがある。 しかも、IE6 では問題ないのに IE7 でだけおかしくなる。 具体的には、こんな現象に悩まされた。

<div id="ajaxtree">
<ul>
	<li>...</li>
	<li>...</li>
	......
</ul>
</div>

のようなツリーメニュー用の HTML があって、この外側に角丸コーナーをつけるために、 この部分をさらに <div class="corner">...</div> のように囲んだ。 この時、

.corner {
	position: relative;
}

のようにスタイルシートに設定したところ、 <ul> や <li> タグの部分をクリックしても onclick のイベントが発生しなくなってしまった。 さらに、マウスカーソルの形を変えるスタイルシートの設定も効かなくなり、 感じとしては <ul> や <li> のブロックが何か別の要素の下に隠れてしまったかのようだ。

最初、hasLayout 絡みの現象かな? と思ったので、zoom: 1; と設定してみたが全く効果無し。 試行錯誤の末、#ajaxtree か .corner のところに overflow: hidden; を追加してやると正常に動作するようになった。 なぜだ? 理由がさっぱり分からない。

これ以上調べることは面倒なのでしないけれど、これ、おそらく IE のバグだよなぁ…。 他のブラウザでは問題なく動くわけだし。

このエントリの続き: 2008-07-28 (月)
Tags: CSS | このエントリを含む del.icio.us | このエントリを含むはてなブックマーク | このエントリを含む livedoor クリップ | Permalink
本日のリンク元

編集