CSS3 transform 引起z-index失效


 

     單純的z-index,可以通過設置數值的大小來決定層級的高低,但一涉及transform,z-index就失效了,為什么咩?

那是因為,web中的任何元素都存在於一個三維空間中,除了大家熟知的平面畫布中的x軸和y軸之外,還有控制第三維度的z軸。

 

在CSS中使用margin、float、offset這些屬性,可以控制元素在x軸和y軸上的表現。而z軸上的表現形式可以通過z-index和transform來控制。那它倆是怎么控制z軸的呢?

z-index控制z軸,需要配合position屬性,且position的屬性值為relative、absolute、fixed和sticky時。並且給z-index顯式的設置數值,數值越大,其層級越高。簡單點說,數值越高,元素越在頂上。

transform可以通過它的translateZ() 來改變元素的層疊順序,其值越大,越在頂層,離屏幕越近。不過通過transform:translateZ() 改變元素z軸的層級,必須在元素的父元素中顯示的設置transform-style:preserver-3d 或者在transform中顯示的設置perspective() 。

@注:transform會創建更高層級的stacking context(堆疊上下文),所以z-index會失效。能同樣創建stacking context的還有opacity屬性。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM