關于IE7 z-index的瀏覽器兼容性問題完美解決方案
瀏覽器兼容性問題太讓人蛋疼了 , 今天可是廢在了IE7的z-index問題上 。可又不能因為瀏覽器版本低而不去解決 , 畢竟要從用戶的角度著想 。百度了好多還是無法解決,最后google了一下 , 找到了方法 。
直接上例子:
復制代碼代碼如下:
div id="container"
div id="box1"This box should be on top/div
/div
div id="box2"
This box should not be on top;
IE however seems to create a new stacking context for positioned elements,
even when the computed z-index of that element is ’auto’.
/div
復制代碼代碼如下:
body { margin: 0; padding: 0; }
#container { position: relative;}
#box1 { position: absolute; top: 100px; left: 510px; width: 200px; height: 200px; background-color: yellow;z-index:20; }
#box2 { position: absolute; top: 50px; left: 460px; width: 200px; height: 200px; background-color: lime; z-index: 10;}
這是為什么呢?其實這是IE瀏覽器的一個BUG在IE瀏覽器中,定位元素會產生一個新的stacking context,并且從z-index的值為0開始 。所以我們需要在這個元素的父元素上設置一個更高的z-index值 。
在上述的box1中的父元素container設置一個更大的z-index就能解決這個問題 。
復制代碼代碼如下:
body { margin: 0; padding: 0; }
#container { position: relative; z-index:30;}
#box1 { position: absolute; top: 100px; left: 510px; width: 200px; height: 200px; background-color: yellow; }
//box1有沒有z-index都無所謂了,但必須同position(relative或absolute)使用,就跟一個人
//生不了孩子一樣 , 需要配合 。
#box2 { position: absolute; top: 50px; left: 460px; width: 200px; height: 200px; background-color: lime; z-index: 20; }
要想覆蓋住父級的同級,父級的z-index就必須別的大 , 這就跟拼老爸一樣,老爸強你就強,這就是傳說中的哲學啊 。
相關經驗推薦
- IE7 mode IE8兼容視圖與獨立IE7的區別詳解
- 讓IE6支持css3,讓 IE7、IE8 都支持CSS3
- IE6,IE7,IE8 css bug搜集及瀏覽器兼容性問題解決方法匯總
- IE7或者IE8全屏解決方案
- jQuery實現簡單網頁遮罩層/彈出層效果兼容IE6、IE7
- ie6,ie7,ie8完美支持position:fixed的終極解決方案
- IE中關于使用innerHTML加入HTML代碼的問題
- 兼容IE6/IE7/IE8/火狐 下拉菜單select樣式設置
- 如何解決IE6/IE7不識別display:inline-block屬性
- IE6,IE7瀏覽器下 margin 無效的解決方法
