层叠上下文是一个三维概念,想象一下HTML元素和面向视窗的用户之间存在一个z轴,元素是基于自身属性有序的来占据这个视窗空间。
层叠上下文的形成
- 文档根目录(
html
) -
position
为absolute
或者relative
并且z-index
值不为auto
-
position
为fixed
或sticky
- flex容器的子元素并且
z-index
值不为auto
- grid容器的子元素并且
z-index
值不为auto
-
opcity
值小于1 - 有
mix-blend-mode
,且值不为normal
- 元素包含下列属性且值不为
none
transform
filter
perspective
clip-path
-
mask
/mask-image
/mask-border
-
isolation
:isolate
-
-webkit-overflow-scrolling
:touch
- 有
will-change
属性,并且为非初始化值 -
contain
值为layout
或paint
或一个包含它们其中一个的组合值(例如contain:strict
,contain:content
)