2009-05-26 48 views
2

更新!是否有可能z - 索引一個嵌套的DIV更高(顯示'上面'),然後在IE7中的根DIV?

建議的回答是不正確的,我的錯誤。 #container DIV應該有「float:left;」。請驗證Firefox和IE7中的HTML。你可以看到不同之處!

我不能讓一個DIV嵌套使用的z-index顯示上方的較高層次的嵌套DIV ...疊加鋪設保持在較低的嵌套DIV即使底部嵌套DIV具有較高的Z-索引...這甚至可能在IE7中?

下列顯示藍色#details以上在Firefox綠色#overlay,然而在IE7藍色#details低於綠色#overlay

UPDATE2: 高價:添加「z索引:99;」到#container風格使類.item divs出現(在Firefox中,IE被搞砸了:無論如何都不能正確顯示),而它們應該在覆蓋層下!如果沒有#container的z-index的設置,它正確地顯示在Firefox,而不是IE ....

<html> 
    <body> 
     <style type="text/css"> 
      .item { 
       float:left;width:75px;height:75px;background-color:red; 
      } 
     </style> 
     <div id="main" style="position:relative;"> 
      <!-- this one should overlay everything, except #details --> 
      <div id="overlay" style="position:absolute; 
            top:0px; 
            left:0px; 
            width:500px; 
            height:500px; 
            z-index:1; 
            background-color:green;"></div> 
      <div id="container" style="position:relative;float:left;"> 
       <!-- these ones should display UNDER the overlay: so NOT visible --> 
       <div class="item"></div> 
       <div class="item"></div> 
       <div class="item"></div> 
       <div class="item"></div> 
       <div class="item"></div> 
       <!-- this one should display above the overlay --> 
       <div id="details" style="position:absolute; 
             width:200px; 
             height:200px; 
             background-color:blue; 
             left:400px; 
             z-index:99;"></div> 
      </div> 
     </div> 
    </body> 
</html> 

回答

1

我不認爲IE7將會讓你這樣做,除非你可以改變你的標記。

#container不會坐在#overlay後面,直到它被賦予一個絕對位置,並且如果將#container的z-index更改爲-1,那麼它的子代#details會跟着它。

將.items z-index更改爲-1也不起作用。

如果無法將#details移到#container之外?如果沒有確切地看到你想達到什麼作爲最終結果以及你有什麼控制權,我不能提出一個替代方案嗎?

E.g.疊加點有什麼意義?它會是一個稍微透明的div或固體?如果用戶無法在疊加層後面看到它們,您是否不想隱藏.items?

你有權訪問任何JavaScript庫,如Jquery ..能夠將#details移動到DOM中的不同位置嗎?