微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

层叠顺序stacking level与堆栈上下文stacking context的优先顺序

A.层叠顺数

元素的顺序除了z-index外,还接受其他因素的控制,也就是“7阶层叠水平”

↓1、形成堆叠上下文环境的元素的背景与边框
↓2、拥有负 z-index 的子堆叠上下文元素 (负的越高越堆叠层级越低)
↓3、正常流式布局,非 inline-block,无 position 定位(static除外)的子元素
↓4、无 position 定位(static除外)的 float 浮动元素
↓5、正常流式布局, inline-block元素,无 position 定位(static除外)的子元素(包括 display:table 和 display:inline )
↓6、拥有 z-index:0 的子堆叠上下文元素
↓7、拥有正 z-index: 的子堆叠上下文元素(正的越低越堆叠层级越低)

图片更加一目了然==>>
越往下,其展示的层级优先度就越高。

B.同样一个容易被人忽视的问题,则是堆栈上下文(stacking context)

堆叠上下文也是有顺序之分的,

会触发堆叠上下文属性的因素如下

1.根元素 (HTML),2.z-index 值不为 "auto"的 relative/absolute,
3.一个 z-index 值不为 "auto"的 flex 项目 (flex item),即:父元素 display: flex|inline-flex,
4.opacity 属性值小于 1 的元素(参考 the specification for opacity),
5.transform 属性值不为 "none"的元素,
6.mix-blend-mode 属性值不为 "normal"的元素,
7.filter值不为“none”的元素,
8.perspective值不为“none”的元素,
9.isolation 属性被设置为 "isolate"的元素,
10.position: fixed
11.在 will-change 中指定了任意 CSS 属性,即便你没有直接指定这些属性的值
12.-webkit-overflow-scrolling 属性被设置 "touch"的元素   

如果没有给他们添加z-index属性,那么他们的层叠顺序就是按照他们在Dom文档流中的先后顺序进行排序的,越在前面的层级越高,越在后面的层级越低。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐