我有一種情況,即在一個頁面上顯示堆疊一個的頁面上有兩個或多個固定位置元素(也就是說,第二個的頂部鄰接第一個的底部 - 這些元素沒有z-索引堆疊)。在第一個固定位置元素中,有一個絕對定位的元素,它比其固定父元素高,因此它超出了該固定父元素的底部。Z-index不像預期的那樣在一個固定位置元素內部進行絕對定位
問題在於下一個固定位置元素顯示在絕對定位元素的頂部。我在絕對定位元素上設置了比固定定位元素更高的z-index值,但它完全被忽略。
爲了幫助澄清這一問題,我放在一起的例子:
HTML
<div class="fixed first">
<p>This is a fixed element</p>
<p class="abs">
I should be displayed above both fixed position elements
</p>
</div>
<div class="fixed second">
<p>This is a fixed element</p>
</div>
CSS
.fixed {
font-size: 16px;
background: #eee;
border-bottom: 1px solid #ccc;
position: fixed;
height: 3em;
width: 100%;
z-index: 1;
}
.abs {
position: absolute;
background: #acc;
height: 6em;
top: 0;
left: 25%;
width: 50%;
z-index: 2;
}
.second {
top: 3.0625em;
}
下面是對的jsfiddle工作實例:
我有點被這個打倒了。有沒有人有解釋爲什麼會發生這種情況,還有解決問題的方法?
[這對z-index如何工作有很好的解釋](http://coding.smashingmagazine.com/2009/09/15/the-z-index-css-property-a-comprehensive-look/) ,因爲您將看到具有z-index的同一級別上的所有元素將優先於子圖層z-index。考慮到這一點,你的上面的小提琴按預期工作 – Pete
當然!我忘了每個定位元素都創建了自己的堆疊環境。由於示例中的每個固定位置元素具有相同的z-索引值,因此源順序將發揮作用。感謝提醒,皮特。 –