返回文章列表

【基础】CSS查缺补漏4(层叠上下文)

html 文档看似是一个平面,实际上 html 元素存在三个维度中。即除了 x / y 轴,还存在 z 轴。

文档中的层叠上下文由满足以下任意一个条件的元素形成:

  • 文档根元素(<html>);

  • position 值为 absoluterelativez-index 值不为 auto 的元素;

  • position 值为 fixed(固定定位)或 sticky(粘滞定位)的元素;

  • flex | grid 容器的子元素,且 z-index 值不为 auto

  • opacity 属性值小于 1 的元素(参见 the specification for opacity);

  • 以下任意属性值不为 none 的元素:

    • transform

    • filter

    • backdrop-filter

    • perspective

    • clip-path

    • mask / mask-image / mask-border

  • isolation 属性值为 isolate 的元素;

  • will-change 值设定了任一属性而该属性在 non-initial 值时会创建层叠上下文的元素(参考这篇文章);

  • contain 属性值为 layoutpaint 或包含它们其中之一的合成值(比如 contain: strictcontain: content)的元素。

子级层叠上下文的 z-index 值只在父级中才有意义。