CSS之堆叠上下文

作者: 饥人谷_cxy | 来源:发表于2018-11-12 17:01 被阅读2次

为什么我们要了解什么是堆叠上下文?

1.这可以让我们明确实际开发网页中,每个元素的显示顺序到底是什么样的。

2.可以了解为什么开发过程中会有这样或者那样的显示问题?并且解决它!

堆叠顺序

元素和元素属性的堆叠顺序是不同的。如下所示,数字越大代表越靠前显示。

1.background

2.border

3.块级

4.浮动

5.内联

6.z-index: 0

7.z-index: +

如果是兄弟元素重叠,那么后面的盖在前面的身上。

z-index:-1,那么要分情况。

如果div是没有定位的,那么z-index:-1 会出现在background后面。

如果div是定位了的,那么z-index:-1 会出现在DIV的后面(也就是2和3之间)。

CSS堆叠顺序排列


堆叠上下文

可以理解为堆叠作用域。跟 BFC 一样,我们只知道一些属性会触发堆叠上下文,但并不知道堆叠上下文是什么。

根元素 (HTML),

z-index 值不为 "auto"的 绝对/相对定位,

一个 z-index 值不为 "auto"的 flex 项目 (flex item),即:父元素 display: flex|inline-flex,

opacity 属性值小于 1 的元素(参考 the specification for opacity),

transform 属性值不为 "none"的元素,

mix-blend-mode 属性值不为 "normal"的元素,

filter值不为“none”的元素,

perspective值不为“none”的元素,

isolation 属性被设置为 "isolate"的元素,

position: fixed

在 will-change 中指定了任意 CSS 属性,即便你没有直接指定这些属性的值(参考 这篇文章)

-webkit-overflow-scrolling 属性被设置 "touch"的元素


怎么理解html中div的堆叠上下文?

比如两个div如图所示,两个父div不是默认定位。它们两个之间先比较他们的z-index值,大的优先显示。

就好像一个公司里的2个大部门,谁的KPI高,谁就受到总裁重视,自然地位高。

但是为什么它们的z-index值相同,也是b元素先显示呢?

再打个比方,b部门是后成立的。好比新官上任三把火,表现要比老部门更抢眼一点,所以b的地位更高一点。

那两个父div比较完了,它们分别的子元素直接z-index值有什么关系呢?答案是子元素只跟自己父元素里的其他子元素z-index值比较大小。跟其他父元素的子元素显示先后就要看它们父元素的z-index值了。

这怎么理解?可以认为b部门比a部门表现抢眼,那么总裁就认为b部门的人工作能力就是a部门的人要强!(活生生的实例啊,说明选择比努力更加重要。。)

总结:如果父元素是默认定位,那么子元素可以跨元素进行比较z-index值;如果父元素不是默认定位,那么子元素只跟自己父元素内的子元素进行比较z-index值。

就像一个公司刚成立,哪有那么多的部门划分,撸起袖子就是干!谁的能力强,谁的KPI就高,老板就更欣赏谁,谁的地位也越高。但是公司发展之后,成立了大大小小各个部门。可能有的部门比其他部门要抢眼,或者有的部门是后成立的。这时候老板只看部门不看人,哪个部门产值高,哪个部门在老板眼中地位就高,至于个人的优秀与否老板不管。个人的能力只在其部门里,让他的主管去考量,跟同部门的人去竞争。(再次说明跟住一个好领导的重要性,个人地位也跟着部门地位水涨船高。)

z-index值不同下的情况

相关文章

  • CSS深入浅出-堆叠上下文

    本博客主要讲CSS的堆叠顺序以及什么是堆叠上下文和堆叠上下文的作用。 堆叠上下文 导读 1.什么是堆叠顺序2.什么...

  • CSS之堆叠上下文

    为什么我们要了解什么是堆叠上下文? 1.这可以让我们明确实际开发网页中,每个元素的显示顺序到底是什么样的。 2.可...

  • CSS 堆叠上下文

    1:什么是堆叠顺序 1:什么是堆叠上下文 参考:张鑫旭博客 css-stacking-context-order-...

  • CSS堆叠上下文

    1,堆叠顺序 1,background,2,border,3,块级元素,4,浮动元素,5,内联元素,6,绝对/相对...

  • CSS 堆叠上下文

    一、什么是堆叠上下文 堆叠上下文(stacking context)是 HTML 中的一个三维的概念。这些 HTM...

  • css—堆叠上下文

    一、堆叠顺序 如图可分为八层:负z-index --- background --- border --- blo...

  • 什么是堆叠上下文?

    首先我们需要了解css中堆叠顺序的概念在没有触发堆叠上下文时,正常的堆叠顺序应该为:负z-index

  • 堆叠上下文

    堆叠顺序堆叠顺序 堆叠上下文 堆叠上下文 https://developer.mozilla.org/zh-CN/...

  • CSS堆叠顺序以及堆叠上下文

    css堆叠顺序:1、background2、border3、块级4、浮动5、内联6、z-index: 07、z-i...

  • CCS深入2堆叠上下文

    堆叠顺序 堆叠上下文 堆叠上下文对z-index得影响 参考1 参考2

网友评论

    本文标题:CSS之堆叠上下文

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