蘋果手機 z-index 失效


原因:

在蘋果手機上, transform 變換的時候會讓 z-index “臨時失效”,其實並非 z-index 失效了,只是 z-index 被用在不同的 stacking context 上,而非在默認的 context 上同等地比較層級了。所以 DOM 在 transform 的工程中,DOM 處於一個新的 stacking context 里,z-index 也是相對於這個 stacking context 的,所以表現出來的實際是 stacking context 的層次,動畫一結束,DOM 又回到默認的 context 里,這時的 z-index 才是在同一個 context 上的比較。

解決方法:

1、首先在出現層級問題的元素上,z-index的大小通過translateZ來設置層級關系:

transform: translateZ(自身z-index的數值px)

原先的z-index最好繼續保留,因為還要考慮到非IOS用戶吖

2、后在父元素上添加:

transform-style: preserve-3d; // 父元素必須加這個

 


免責聲明!

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



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