CSS

CSS深入浅出之堆叠上下文

Posted by weite122 on 2018-02-21

堆叠顺序

FrbdiFEq7r5xDideYoKtAFaPbnvD.jpg

  1. background
  2. border
  3. 块级
  4. 浮动
  5. 内联
  6. z-index: 0
  7. z-index: +
  • 如果是兄弟元素重叠,那么后面的盖在前面的身上。元素只有设置position属性后,才能设置z-index。主要记住如何验证堆叠顺序,结果很难记。
  • 验证code: http://js.jirengu.com/cexoj/2/edit

堆叠上下文

  • 根元素 (HTML),
  • z-index 值不为 "auto"的 绝对/相对定位,
  • 一个 z-index 值不为 "auto"的 flex 项目 (flex item),即:父元素 display: flex|inline-flex,
  • opacity 属性值小于 1 的元素(参考 the specification for opacity),与rgba 的 Alpha不一样。
  • transform 属性值不为 "none"的元素,
  • mix-blend-mode 属性值不为 "normal"的元素,
  • filter值不为“none”的元素,
  • perspective值不为“none”的元素,
  • isolation 属性被设置为 "isolate"的元素,
  • position: fixed
  • 在 will-change 中指定了任意 CSS 属性,即便你没有直接指定这些属性的值(参考 这篇文章)
  • -webkit-overflow-scrolling 属性被设置 "touch"的元素

堆叠上下文对z-index的影响