2011-03-19 59 views
0

我正在使用JQuery來顯示/隱藏div。它在除IE6以外的大多數瀏覽器中都能正常工作。當我顯示div時,它會隱藏在其他div的後面,而不是隱藏在其他頂部。不能在ie6頂部隱藏div

你可以在這裏看到我的意思:http://www.urlgone.com/d055c5/(http://old.solesurvivorleather.com/static_product.html)。

如果您在右上角的菜單中將鼠標懸停在電子郵件列表上,您將看到隱藏的div'listform t'向下滑動並顯示在頂部,但在IE6中,它向下滑動到body-wrapper div後面。

下面是兩個div的CSS代碼:

#listform { 
    background-color:#F4F4EF; 
    border:1px solid #8F8A7E; 
    display:none; 
    margin:0; 
    max-width:150px; 
    padding:10px; 
    position:absolute; 
    right:0; 
    text-align:left; 
    top:30px; 
    width:150px; 
    z-index:999; 
} 
#body-wrapper, #utility-wrapper { 
    margin:0 auto; 
    position:relative; 
    width:950px; 
} 
#body-wrapper { 
    background-color:#FFFFFF; 
    border:0 solid black; 
    position:absolute; 
} 

回答

0

當涉及到定位元素時,IE不會以直觀的方式關注z-index。如果您將#listform元素移至代碼末尾(就在</body>之前),IE應該正確渲染內容。

或者,您可以將#listform元素請將#body-wrapper年底內(之前的</div>)。這將放置在堆棧比所有它需要重疊的項目元素較高。由於#body-wrapper的寬度是固定的,因此無論用戶窗口大小如何,都應提供穩定的偏移量計算。

+0

這確實確實解決了這個問題,但後來我有正確定位div的問題。如果我在div之外有它,我需要它在它不會直接顯示在電子郵件列表下面。據我瞭解,這個位置可能會因用戶屏幕設置而異。任何建議如何解決這個問題? – Jesse 2011-03-20 00:00:55

+0

你可以把它放在身體包裝div - 我更新了上面的答案,看看是否適用於你。 – eug 2011-03-20 01:52:56

0

你嘗試過讓身體紙上出現較低的z-index值?

2

在Internet Explorer中定位的元素生成一個新的堆棧上下文,從z-index值爲0開始。因此,z-index無法正常工作。要解決此問題,請給父母元素position:relative並將其設置爲z-index與您要設置z-index的子元素相同。子元素也應該有position:absolute。這是它應該看起來的樣子。

<div style="position: relative; z-index: 10"> 
    <div style="position:absolute;z-index:10;"> 
     <img src"..." /> 
     ... 
    </div> 
</div>