我有一個測試用例here。Internet Explorer 7中z索引問題
我想要實現的是,帶有綠色子元素的藍色父元素像紙夾一樣環繞紅色元素。正如你可以在所有現代瀏覽器中看到的那樣,這很好 - 但在IE7中,綠色元素保留在後臺。
有沒有解決方案,我怎麼能在IE7中實現這一點?
編輯:這是必不可少的,綠色元素仍然作爲藍色的一個子元素,因爲藍色元素將動畫,這也是綠色元素寬度的位置上生效。
我有一個測試用例here。Internet Explorer 7中z索引問題
我想要實現的是,帶有綠色子元素的藍色父元素像紙夾一樣環繞紅色元素。正如你可以在所有現代瀏覽器中看到的那樣,這很好 - 但在IE7中,綠色元素保留在後臺。
有沒有解決方案,我怎麼能在IE7中實現這一點?
編輯:這是必不可少的,綠色元素仍然作爲藍色的一個子元素,因爲藍色元素將動畫,這也是綠色元素寬度的位置上生效。
將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 */
}
正如你可以在CSS#中間容器的第一行和#容器後面已經看到的位置:絕對;不幸的是,我不能改變爲相對的,因爲元素將被放置在一個更大的容器內,並將與jQuery動畫:( – Ralf 2011-04-14 14:30:25
這個作品在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:清理了幾行代碼
嗨wdm,謝謝,但這不是我所需要的。我剛剛編輯帖子: 它是基本上,綠色元素仍然是藍色子元素,因爲藍色元素將會生成動畫,這也會對綠色元素的寬度和位置起作用 因此,如果藍色div的寬度或位置改變了綠色div的寬度也會改變,其位置不能在藍色元素內部改變。 – Ralf 2011-04-14 15:05:28
它在IE7和IE8中看起來一樣。你計算* IE9 *作爲你的「現代版」IE瀏覽器嗎?編輯:其實,除了不透明之外,它在IE7中看起來與Firefox/Chrome中相同。 – thirtydot 2011-04-14 14:14:38
其實它在IE8(我沒有IE9),Firefox 4/Chrome/Opera 11中看起來不錯 - >藍色榆木在紅色榆樹後面,而綠色榆樹在頂部。我使用IE8的兼容模式來模擬IE7渲染行爲。 – Ralf 2011-04-14 15:13:21
*我確信*自從我看過之前,測試用例已經發生了變化。之前在IE中沒有透明度..嗯,我可以看到你現在遇到的問題。 – thirtydot 2011-04-14 15:24:02