总结下CSS层叠知识点

总结下CSS层叠知识点

”层叠上下文“和”层叠等级“

  • 普通元素的层叠等级优先由所在层叠元素决定
  • 层叠等级只有层叠上下文元素中才有意义。不同层叠上下问比较是没有意义的。

如何产生”层叠上下文“

  1. HTML中的根元素<html>本身就具有层叠上细纹,成为层叠上下文
  2. 普通元素设置position属性为非static值或者是z-index属性具体值。产生层叠上下文
  3. CSS3中的新属性也可以产生层叠上下文

层叠顺序

  • 层叠顺序表示元素发生层叠式按照特定的顺序规则在Z轴上垂直显示。

  1. 左上角”层叠上下文background/border“指的是层叠上下文元素的背景和边框
  2. 考虑层叠顺序 z-index:autoz-index:0在同一层级,但这两个属性本身是没有根本区别的。

判断技巧

  1. 首先先看比较两个元素是否处在同一个层叠上下文中。
    1.1 如果是,谁的层叠等级大,谁在上面
    1.2 如果两个元素不在统一层叠上下文中,请先比较他们所在的层叠上下文的层叠等级
  2. 当两个元素层叠等级相同,层叠顺序相同,在DOM结构中后面的元素层叠等级在前面元素上

CSS3中的属性对层叠上下文的影响

  1. 父元素的display属性值为flex|inline-flex,子元素z-index属性不为auto时候,子元素为层叠上下文元素
  2. 元素的opactiy属性不为1;
  3. 元素的transform属性不是none
  4. 元素mix-blend-mode属性补位normal
  5. 元素filter属性不为none
  6. 元素isolation属性是lsolate
  7. will-change指定的属性值为上面任意一个
  8. 元素的-webkit-overflow-scrolling属性值为touch

https://juejin.cn/post/6844903667175260174#heading-8

posted @ 2021-01-20 14:58  爱好跑步的小张  阅读(155)  评论(0)    收藏  举报