2011-04-14 112 views
1

我有一個測試用例hereInternet Explorer 7中z索引問題

我想要實現的是,帶有綠色子元素的藍色父元素像紙夾一樣環繞紅色元素。正如你可以在所有現代瀏覽器中看到的那樣,這很好 - 但在IE7中,綠色元素保留在後臺。

有沒有解決方案,我怎麼能在IE7中實現這一點?

編輯:這是必不可少的,綠色元素仍然作爲藍色的一個子元素,因爲藍色元素將動畫,這也是綠色元素寬度的位置上生效。

+0

它在IE7和IE8中看起來一樣。你計算* IE9 *作爲你的「現代版」IE瀏覽器嗎?編輯:其實,除了不透明之外,它在IE7中看起來與Firefox/Chrome中相同。 – thirtydot 2011-04-14 14:14:38

+0

其實它在IE8(我沒有IE9),Firefox 4/Chrome/Opera 11中看起來不錯 - >藍色榆木在紅色榆樹後面,而綠色榆樹在頂部。我使用IE8的兼容模式來模擬IE7渲染行爲。 – Ralf 2011-04-14 15:13:21

+0

*我確信*自從我看過之前,測試用例已經發生了變化。之前在IE中沒有透明度..嗯,我可以看到你現在遇到的問題。 – thirtydot 2011-04-14 15:24:02

回答

0

position:relative;添加到聲明z-index的CSS。它在大多數情況下工作。

你的情況,這將是

#middle-container { 
     width: 250px; 
     height: 300px; 
     background: red; 
     left: 100px; 
     top: 20px; 
     z-index: 2; 
     position: relative; /* added row to make z-index work */ 
     opacity: .9; 
    } 

    #container-behind { 
     width: 220px; 
     height: 110px; 
     padding-left: 70px; 
     background: blue; 
     top: 80px; 
     left: 320px; 
     z-index: 1; 
     position: relative; /* added row to make z-index work */ 
    } 
+0

正如你可以在CSS#中間容器的第一行和#容器後面已經看到的位置:絕對;不幸的是,我不能改變爲相對的,因爲元素將被放置在一個更大的容器內,並將與jQuery動畫:( – Ralf 2011-04-14 14:30:25

0

這個作品在IE7

演示:http://jsfiddle.net/dTJ4d/1

演示2:http://jsfiddle.net/dTJ4d/2

<div id="middle-container">  
    #middle-container 
    <div id="container-behind"> 
     #container-behind 
    </div> 
    <div id="inner-behind"> 
     #inner-behind 
    </div> 
</div> 
DIV 
{ 
    padding: 10px; 
    color: #FFFFFF; 
} 
#middle-container 
{ 
    width: 250px; 
    height: 300px; 
    background: #FF0000; 
    left: 100px; 
    top: 20px; 
} 
#container-behind 
{ 
    width: 220px; 
    height: 110px; 
    padding-left: 70px; 
    background: #0000FF; 
    top: 80px; 
    left: 70px; 
    z-index: -1; 
    position: absolute; 
} 
#inner-behind 
{ 
    width: 210px; 
    padding-left: 70px; 
    background: #80E64D; 
    position: relative; 
    z-index: 1; 
    top: 75px; 
    left: 50px; 
} 

Ë DIT:清理了幾行代碼

+0

嗨wdm,謝謝,但這不是我所需要的。我剛剛編輯帖子: 它是基本上,綠色元素仍然是藍色子元素,因爲藍色元素將會生成動畫,這也會對綠色元素的寬度和位置起作用 因此,如果藍色div的寬度或位置改變了綠色div的寬度也會改變,其位置不能在藍色元素內部改變。 – Ralf 2011-04-14 15:05:28