美文网首页让前端飞Web前端之路
[前端][CSS]用ps的方式理解层叠上下文

[前端][CSS]用ps的方式理解层叠上下文

作者: Tuzei | 来源:发表于2020-03-13 11:22 被阅读0次

之前看了大佬的对层叠上下文的解释
https://www.zhangxinxu.com/wordpress/2016/01/understand-css-stacking-context-order-z-index/
然后感觉对各种设置了z-index的情况可以用Photoshop里图层的方式来进行一个理解会直观很多。

我们可以把创建层叠上下文 ,看成就像是在ps里面创建了一个组,把子元素放到组里。
而父没有达成创建上下文条件的,子会被类似当成根下的一个单独的图层。
我们这里的创建层叠上下文的方式,主要是用这一条来进行(其他创建方式下的表现,比如设置了transform等,这些还没仔细研究)

定位元素与传统层叠上下文
对于包含有position:relative/position:absolute的定位元素,以及FireFox/IE浏览器(不包括Chrome等webkit内核浏览器)(目前,也就是2016年初是这样)下含有position:fixed声明的定位元素,当其z-index值不是auto的时候,会创建层叠上下文。

举个栗子:

    <div id="1" style="position:relative; z-index:auto;">
        <span id="1-1" style="position:absolute;background-color:red;">
            ????
        </span>
    </div>
    <div id="2" style="position:relative; z-index:auto;">
        <span id="2-1" style="position:absolute; background-color:antiquewhite;"> 666</span>
    </div>

这里父的z-index都是auto,都没有达成创建层叠上下文的条件。不过注意和ps相反的是,自然情况下,html里是后面的元素会在前面元素的上面。像这样。


Photoshop示意图 运行结果

如果在2-1,1-1里设置z-index,就等于按z-index来调整他们的顺序,越大放在越上面。

    <div id="1" style="position:relative; z-index:auto;">
        <span id="1-1" style="position:absolute;z-index:2;background-color:red;">
            ????
        </span>
    </div>
    <div id="2" style="position:relative; z-index:auto;">
        <span id="2-1" style="position:absolute;z-index:1;background-color:antiquewhite;"> 666</span>
    </div>
Photoshop示意图

这里1-1的z-index大于2-1的z-index,所以就放在了上面

显示结果

而当父达成了创建层叠上下文条件:
比如当id=1的div设置了z-index为具体值,就达成了创建层叠上下文条件。就等于放进了一个组里。


ps

而id=2不改变,所以依然没有满足层叠上下文的条件。2-1是和group 1同层做比较的。
当1的z-index设置小于2-1,则2-1在上,group 1在下,group1的内容都在下。


ps
    <div id="1" style="position:relative; z-index:1;">
        <span id="1-1" style="position:absolute;z-index:3;background-color:red;">
            ????
        </span>
    </div>
    <div id="2" style="position:relative; z-index:auto;">
        <span id="2-1" style="position:absolute;z-index:2;background-color:antiquewhite;"> 666</span>
    </div>
运行结果

在group 1内部的元素的z-index,只是在改变它在group1里的排序。类似这样。


ps

所以即使group1里的元素z-index设置大于2-1的z-index,但是也没办法跳出它的父,覆盖到2-1上。


而同理,当group1的z-index比2-1大的时候,它就被放到上面去了。


ps

就算它的子的z-index再小,也不会跑出这组,跑到2-1下面去

    <div id="1" style="position:relative; z-index:4;">
        <span id="1-1" style="position:absolute;z-index:1;background-color:red;">
            ????
        </span>
    </div>
    <div id="2" style="position:relative; z-index:auto;">
        <span id="2-1" style="position:absolute;z-index:3;background-color:antiquewhite;"> 666</span>
    </div>
显示

注意如果是这样:

    <div id="1" style="position:relative; z-index:4;">
        <span id="1-1" style="position:absolute;z-index:1;background-color:red;">
            ????
        </span>
    </div>
    <div id="2" style="position:relative; z-index:auto;">
        <span id="2-1" style="position:absolute;z-index:3;background-color:antiquewhite;"> 666<span id="2-1-1" style="position:absolute;z-index:10;background-color:green;"> 2-1-1</span></span>
    </div>

其实是等于2-1创建了层叠上下文,创建了个group


ps

其他同理
如果把id=2的z-index等于5
就等于2创建了层叠上下文,类似这样


ps

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1vpfff7b4qo0l

相关文章

  • [前端][CSS]用ps的方式理解层叠上下文

    之前看了大佬的对层叠上下文的解释https://www.zhangxinxu.com/wordpress/2016...

  • 层叠上下文

    什么是层叠上下文? 层叠上下文是HTML中的一个三维概念。可以简单的理解为一个元素如果具备某些特定CSS属性就会成...

  • 彻底搞懂CSS层叠上下文、层叠等级、层叠顺序、z-index

    和大家分享有关CSS中层叠上下文、层叠等级、层叠顺序以及z-index相关的一整套技术细节。 一个“片面”的理解 ...

  • css层叠

    最近在写代码,整到层叠上下文和图层相关的事情,然后发现自己对于CSS中的层叠相关的知识并没有自己想象中那样理解的透...

  • CSS:层叠上下文

    层叠顺序: 层叠上下文(border/background)< 负z-index < block块状盒子 < 浮动...

  • css层叠上下文

    一、层叠上下文 上下文定义: ① 一个参与多方构建的,遵循一定规则的,独立的环境②子项可能创建新的独立的环境,与外...

  • CSS学习之CSS基础

    标签: 前端 css 样式 CSS样式 css全称为"层叠样式表(cascading style sheets)...

  • 前端css层叠顺序与堆栈上下文

    z-index 看上去其实很简单,根据 z-index 的高低决定层叠的优先级,实则深入进去,会发现内有乾坤。 看...

  • 从CSS画钟理解层叠上下文

    最近新项目刚上手,自己也比较菜,挺忙。抽空在Dribble上找时钟练习CSS的时候,发现了一个令我很困扰的事情。 ...

  • web面试相关

    css 1、盒模型 2、flex 3、css单位 4、css选择器 5、bfc 清除浮动 6、层叠上下文 7、常见...

网友评论

    本文标题:[前端][CSS]用ps的方式理解层叠上下文

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