美文网首页
层叠上下文、层叠等级、层叠顺序、z-index

层叠上下文、层叠等级、层叠顺序、z-index

作者: 啊哈_57ea | 来源:发表于2020-07-10 17:31 被阅读0次

    元素Z轴上下位置规则:

    1、首先看是否处于同一层叠上下文, 如果是 ------看层叠等级(等级越大、越上面)。 如果不是 ------- 先比较它们所处的层叠上下文的层叠等级。
    2、当两个元素层叠等级相同、层叠顺序相同时、 在Dom结构中 后面的元素层叠等级在前面元素之上。

    3、层叠等级的比较只有在当前层叠上下文元素中才有意义。不同层叠上下文中比较层叠等级是没有意义的

    层叠上下文:

    1、HTML中的根元素<html></html>本身就具有层叠上下文,称为“根层叠上下文”。

    2、普通元素设置position属性为static值并设置z-index属性为具体数值,产生层叠上下文。

    3、CSS3中的新属性也可以产生层叠上下文。

    层叠顺序:

    层叠顺序”(stacking order)表示元素发生层叠时按照特定的顺序规则在Z轴上垂直显示。

    不考虑CSS3的情况下,当元素发生层叠时,层叠顺讯遵循上面图中的规则

    注意:

    左上角"层叠上下文background/border"指的是层叠上下文元素的背景和边框。

    inline/inline-block元素的层叠顺序要高于block(块级)/float(浮动)元素。(为什么inline/inline-block元素的层叠顺序要高于block(块级)/float(浮动)元素? 就像像border/background属于装饰元素的属性,浮动和块级元素一般用来页面布局,而网页设计之初最重要的就是文字内容,所以在发生层叠时会优先显示文字内容,保证其不被覆盖。)

    单纯考虑层叠顺序,z-index: auto和z-index: 0在同一层级,但这两个属性值本身是有根本区别的。

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

    CSS3中出现了很多新属性,其中一些属性对层叠上下文也产生了很大的影响。如下:

    父元素的display属性值为flex|inline-flex,子元素z-index属性值不为auto的时候,子元素为层叠上下文元素;

    元素的opacity属性值不是1;

    元素的transform属性值不是none;

    元素mix-blend-mode属性值不是normal`;

    元素的filter属性值不是none;

    元素的isolation属性值是isolate;

    will-change指定的属性值为上面任意一个;

    元素的-webkit-overflow-scrolling属性值设置为touch。

    相关文章

      网友评论

          本文标题:层叠上下文、层叠等级、层叠顺序、z-index

          本文链接:https://www.haomeiwen.com/subject/vnyjcktx.html