絕對定位元素的“有定位屬性(relative或absolute)的父元素”在渲染層次時起到了主要作用,前面的被後面的覆蓋了。解決辦法就是給有定位屬性的父元素設置z-index
解決辦法:
父級元素加上position:relative;並設置z-index屬性。父級元素的z-index優先,其中包含的元素的z-index是相對於父級元素的index。
- <div style="position:relative;z-index:2;">
- <p style="position:absolute;z-index:99;"> ...(要在上層顯示的內容)</p>
- <div>
- <div style="position:relative;z-index:1;">
- ...
- <div>
在ie7下,如下代碼會出現z-index覆蓋混亂的問題:
- <div style="position:relative;">
- <div style="position:absolute;z-index:100;width:100px;height:100px;background:red;">
- ……
- </div>
- </div>
- <div style="position:relative;">
- <div style="position:absolute;z-index:10;width:20px;height:20px;background:black;">
- ……
- </div>
- </div>
黑色到了紅色的上面。
這是因爲絕對定位元素的“有定位屬性(relative或absolute)的父元素”在渲染層次時起到了主要作用,前面的被後面的覆蓋了。
解決辦法就是給有定位屬性的父元素設置z-index:
- <div style="position:relative;z-index:2;">
- <div style="position:absolute;z-index:100;width:100px;height:100px;background:red;">
- ……
- </div>
- </div>
- <div style="position:relative;z-index:1;">
- <div style="position:absolute;z-index:10;width:20px;height:20px;background:black;">
- ……
- </div>
- </div>