2012-11-23 47 views
1

我有一個問題,在Firefox上嵌套的Z索引,也可能是其他瀏覽器,我有一個div Z指數爲30000坐在label以下的zindex爲9000.我認爲這是由30000 Z指數坐在div與2000年S指數,但我刪除了這一點,它沒有效果的div引起的。在Firefox上嵌套的z-index問題與更高的Z指數behing較低的Z指數

這裏有什麼明顯的會導致這個問題嗎?

<div class="field row olabel end_date">  
    <label for="cc_end_year" generated="true" class="error">* required</label>  
</div> 

進一步在我的標記中,我有一個彈出消息顯示/隱藏在一段文字的翻轉。

我的CSS:

#order_form .row.end_date { 
    position: relative; 
    z-index: 9000; 
}  
label.error { 
    z-index: 9001; 
} 
.whats_this_popup { 
    left: 360px; 
    padding: 20px; 
    position: absolute; 
    width: 205px; 
    z-index: 30000; 
} 
#order_form .row { 
    width: 435px; 
    z-index: 2000; 
} 

回答

1

這是由stacking context造成的。前div的堆棧上下文具有z-index 9000,而後者的堆棧上下文具有z-index 2000.

您僅在其父代內爲該標籤提供9001 的z索引。 z-index在父級的堆棧上下文之外沒有意義。同樣,通過爲.whats_this_popup指定30000的z索引,則表示它將顯示在其任何同胞之前,z-index小於30000,而不是具有z索引<的頁面上的任何東西30000.

給後者包含 div 30000的索引將導致您想要的結果。

+0

是的,你是絕對正確的。這歸結於堆疊環境問題。我已經失去了使用z-idexes遇到堆棧上下文問題的次數,特別是在IE7上。 – crmpicco