IE7下position的z-index Bug解決方案

通常設置position後,通過z-index屬性來設置div的層疊情況。

但是在IE7中,設置position後,z-index會失效。導致div的層疊出現問題。

具體效果可以看這個頁面

http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html

以下分別是IE7與IE8之間的差別:


請先認真看他們的HTML和CSS信息:

正常理解是應該顯示上圖右邊的那種情況,但是IE7上的確是一件很怪異的事情,查了許多資料終於找到了解決方案:
http://brenelz.com/blog/squish-the-internet-explorer-z-index-bug/

In Internet Explorer positioned elements generate a new stacking context, starting with a z-index value of 0. Therefore z-index doesn’t work correctly. So we giving the parent element a higher z-index actual fixes the bug

以上告訴我們,IE設置了position的元素會生成一個新的stacking context,導致 z-index 爲0,所以才失效了。所以我們需要在這個元素的父元素上設置一個更高的z-index值。

在上述的box1中的父元素container設置一個更大的z-index就能解決這個問題,如下:

CSS
1
#container { position: relative; z-index:30;}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章