IOS safari浏览器中出现的z-index不生效的层级问题

开发中遇到了,弹窗组件和tab组件同时存在,在安卓上弹窗在tab上层,但在ios上,tab盖在了弹窗组件上层。
解决方式有两种:
1.把弹窗组件挂载到body上
2.设置-webkit-overflow-scrolling touch改为-webkit-overflow-scrolling unset
3.也有说设置z-index时候设置transform,但对我无效

-webkit-transform: translateZ(1000px);
-moz-transform: translateZ(1000px);
-o-transform: translateZ(1000px);
transform: translateZ(1000px);

参考链接:https://huaweicloud.csdn.net/64ec52a02ea0282871eab03c.html

z-index失效的几种情况:
通常 z-index 的使用是在有两个重叠的标签,在一定的情况下控制其中一个在另一个的上方或者下方出现。z-index值越大就越是在上层。

z-index元素的position属性需要是relative,absolute或是fixed。

z-index属性在下列情况下会失效:

1.父元素position为relative时,子元素的z-index失效。解决:父元素position改为absolute或static;
2.元素没有设置position属性为非static属性。解决:设置该元素的position属性为relative,absolute或是fixed中的一种;
3.元素在设置z-index的同时还设置了float浮动。解决:float去除,改为display:inline-block;
4.在手机端 iOS 13 系统中,-webkit-overflow-scrolling:touch 也会使 z-index 失效,将 touch 换成 unset

css-z-index 详解参考链接:https://blog.csdn.net/weixin_45092437/article/details/126493240

你可能感兴趣的:(前端)