css深入理解z index

2022-09-06 02:12:10 字數 2336 閱讀 2633

z-index:auto;

z-index:;

z-index:inherit;繼承

1.支援負值

2.支援css3 animation動畫;

3.在css2.1時代,需要和定位元素(position:relative/absolute/fixed/sticky)配合使用;

@keyframes zindex

100%

}1.後來居上的準則;

2.那個大,那個上;

後者覆蓋前者:(後來居上的準則)

前者覆蓋後者:(z-index:那個大,那個上)

1.祖先優先原則;(前提:z-index值是數值,非auto)

後者覆蓋前者

前者覆蓋後者

css2.1:(z-index:auto)當前層疊上下文的生成盒子層疊水平是0,盒子(除非是根元素)不會建立乙個新的層疊上下文。

1.定位元素預設z-index:auto可以看成是z-index:0;

2.z-index不為auto的定位元素會建立層疊上下文;

3.z-index層疊順序的比較止步於父級層疊上下文;

1.定位元素會覆蓋普通元素

後者覆蓋前者 (後來居上原則)

.a{}

.b前者覆蓋後者

.a.b

原因:前者的 定位元素的 z-index:0 z-index:auto或者z-index:0 高於 inline/inline-block水平盒子

2.z-index不為auto,與建立層疊上下文

img覆蓋box,(box和img都沒有z-index,都沒有建立層疊上下文,都是普通元素)

.box

.box img

box覆蓋img(box的z-index是auto,沒有建立層疊上下文,img會一直往上找,只到找到層疊上下文容器)

.box

.box img

img覆蓋box (box的z-index是0,建立層疊上下文,img會找到層疊上下文容器box,並在其上顯示)

.box

.box img

box2覆蓋img(div是普通元素所以它的z-index:1,沒有任何作用)

.box2

.box2>div

.box2>div img

img覆蓋box2()

.box2

.box2>div

.box2>div img

z-index:auto 和z-index:0,前者不建立層疊上下文,後者建立層疊上下文,

但不包括ie7,ie7的z-index:auto,建立層疊上下文

從層疊順序上講,z-index:auto可以看成z-index:0,

但從層疊上下文來講,兩者卻有著本質差異。

3.z-index受限於層疊上下文

後者覆蓋前者

.box1

.box1 img

.box2

.box2 img

原因:box2的z-index大於box1的z-index

頁面根元素天生具有層疊上下文,稱之為『根層疊上下文』。

z-index值為數值的定位元素(相對或絕對)也具有層疊上下文。

其他參與層疊上下文的屬性們:

1.z-index值不為auto的flex項(父元素display:flex|inline-flex)

2.元素的opacity值不是1

3.元素的transform值不是none

4.元素mix-blend-mode值不是normal

5.元素的filter值不是none

6.元素的isolation值是isolate

7.position:fixed宣告

8.will-change指定的屬性值為上面任意乙個

9.元素的-webkit-overflow-scrolling設為touch

img覆蓋box3(box3建立了層疊上下文容易,,img會找到層疊上下文容器box3,並在其上顯示)

.box3

.box3 img

z-index與其他css屬性層疊上下文:

--非定位元素層疊上下文和z-index關係大揭秘

1.不支援z-index的層疊上下文元素的層疊順序均是z-index:auto級別

2.依賴z-index的層疊上下文元素的層疊順序取決於z-index值

依賴z-index值建立層疊上下文的情況:

1.position值為relative/absolute或者fixed(部分瀏覽器)

2.display:flex|inline-flex容器的子flex項

深入理解z index

要解決的問題 在頁面編寫的過程中,經常需要處理元素的重疊。重疊的順序不當則容易造成元素被錯誤地遮蓋等現象。一般地,有很多人認為只需要指定元素的z index即可調整重疊的順序,但是實際上並不是這樣的。重新理解頁面維度 當我們開啟乙個網頁,我們會看到乙個二維的世界。在這個二維的世界裡,頁面裡的box ...

深入理解CSS背景

背景色background接受所有合法的顏色,還可以接受乙個使背景透明的關鍵字。關於顏色的設定請移步至此。背景顏色不能繼承。其預設值是transparent,如果乙個元素沒有指定的顏色,那麼背景就應當是透明的,這樣其祖先元素的背景才能可見。值 transparent inherit 初始值 tran...

深入理解CSS浮動

float 浮動 浮動元素脫離普通流,然後按照指定方向,向左或者向右移動,碰到父級邊界或者另外乙個浮動元素停止 值 left right none inherit 初始值 none 應用於 所有元素 繼承性 無 浮動流正常流中元素乙個接乙個排列 浮動元素也構成浮動流 塊級框浮動元素自身會生成乙個塊級...