CSS 最佳实践 + 套路(三) -- 堆叠上下文

条件

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

  • 根元素(HTML)
  • z-index 不为 auto 的 absolute/relative
  • 一个 z-index 值不为 auto 的 flex 项目,即父元素 display: flex/inline-flex
  • opacity 属性值小于 1 的元素
  • transform 属性不为 none 的元素
  • mix-blend-mode 属性值不为 normal 的元素
  • filter 不为 none 的元素
  • perspective 值不为 none 的元素
  • isolation 属性被设置为 isolate 的元素
  • position: fixed
  • 在 will-change 中指定了任意 CSS 属性,即使没有直接指定这些属性的值
  • -webkit-overflow-scrolling 属性被设置为 touch 的元素

堆叠层级:

负z-index(父元素没有position: relative/absolute) < position: static(background-color < border < 负z-index(父元素position: relative/absolute)  < div/块级元素 < 浮动元素 < 浮动元素内的文字/内联元素 < 浮动元素外面的文字/内联元素) < position: relative/absolute < 正z-index
  • 相同的属性按先后顺序排列
  • 具有相同 position 属性的 + z-index 只能覆盖相同 position 属性(relative === absolute)的元素

作用 + 影响

堆叠上下文主要是影响 z-index
z-index: 2 永远在 z-index: 0 的上方么?

堆叠上下文影响 z-index 01

堆叠上下文影响 z-index 02

堆叠上下文影响 z-index 03
堆叠上下文影响 z-index 04
堆叠上下文影响 z-index 05
具体使用示例

最佳实践 & 套路

z-index 需要配合 position: relative | absolute 使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容