1.概念
stacking context
網頁中的元素級別不同,有z軸
2.層疊水平
普通元素的層疊水平優先由層疊上下文決定,層疊水平的比較只有在當前層疊上下文元素中才有意義
老時代層疊順序:
- 正z-index
- z-index: 0
- inline / inline-block 內聯盒子
- float 浮動盒子
- block 塊級水平盒子
- 負z-index
- 層疊上下文 background/border
內聯元素層疊順序要比浮動元素和塊狀元素要高
優先顯示的順序是:
inline和inline-block一般是內容
float和block一般是布局
background和border一般是裝飾
層疊黃金準則:
1.誰大誰上
z-index值大的那個覆蓋z-index小的那個
2.后來居上
層疊水平一直,層疊順序相同時,在DOM流中處于后面的元素會覆蓋前面的元素
3.層疊上下文的創建
根層疊上下文
html標簽,絕對定位時,如果沒有其他元素限制,就會相對瀏覽器窗口定位的原因z-index為數值的定位元素的傳統層疊上下文
其他css3屬性
z-index: 0所在的div是層疊上下文元素,而z-index: auto所在的div是一個普通元素,里面兩個的層疊比較就不受父級影響,誰大誰上的準則
z-index一旦變成數值,都會創建一個層疊上下文,每個層疊上下文是自成體系的,當元素發生層疊時,整個元素被任務是在父層疊上下文的層疊順序中