通常 z-index 的使用是在有两个重叠的标签,在一定的情况下控制其中一个在另一个的上方或者下方出现。z-index值越大就越是在上层。z-index元素的position属性需要是relative,absolute或是fixed。
z-index属性在下列情况下会失效:
- 父元素position为relative时,子元素的z-index失效。解决:父元素position改为absolute或static;
- 元素没有设置position属性为非static属性。解决:设置该元素的position属性为relative,absolute或是fixed中的一种;
- 元素在设置z-index的同时还设置了float浮动。解决:float去除,改为
display:inline-block
;
20230116,有小伙伴补充:
- 在手机端
iOS 13
系统中,-webkit-overflow-scrolling:touch
也会使z-index
失效,将touch
换成unset
具体原因可参考这篇文章: 为什么我的 z-index 又不生效了?