最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • CSS之层叠上下文

    正文概述 掘金(啊巴啊巴)   2021-06-20   392

    这是我参与更文挑战的第19天,活动详情查看:更文挑战

    一、什么是层叠上下文

    层叠上下文(stacking context):

    其实就是我们虚构的一个概念,就像是我们看页面的时候,你看着好像只有一层,其实有很多层。 如果是层叠上下文的元素,就拥有优先接近我们用户的权力。(好像接近我们多好似的。

    CSS之层叠上下文

    二、z-index

    要讲层叠上下文,就必须讲一下z-indexz-index规定了元素的层级关系。 当我们要指定元素的排列顺序的时候,给元素指定z-index就可以修改它的顺序。

    注意:z-index只对指定了position属性的元素有效。

    z-index数值越大,它的优先级越高,也就是在上面。

    CSS之层叠上下文

    如果没有指定z-index的情况下,所有的元素默认都在默认层(0层) ,比如

        <div id="div1"></div>
        <div id="div2"></div>
        <div id="div3"></div>
    
        div {
            opacity: 0.7;
            position: relative;
        }
       
        #div1 {
            width: 200px;
            height: 200px;
            background-color: aqua;
            position: absolute;
        }
        
        #div2 {
            width: 200px;
            height: 200px;
            background-color: rgb(234, 0, 255);
            margin-left: 50px;
            position: absolute;
            z-index: 1;
        }
        
        #div3 {
            width: 200px;
            height: 200px;
            background-color: rgb(255, 187, 0);
            margin-left: 100px;
            position: absolute;
            z-index: 2;
        }
    

    效果?

    CSS之层叠上下文

    三、层叠水平(stacking level)

    如果说层叠上下文就是一种有优先接近我们的权力,那层叠水平就是决定了同一个层叠上下文当中元素在z轴上的显示顺序。

    层叠水平不是刚刚提到的z-index,虽然z-index能够影响层叠水平,但是z-index只作用于拥有定位的元素。而层叠水平存在于所有的元素

    四、为什么会有层叠上下文

    当我们渲染网页的时候,有可能因为网络延迟等问题没有在很短的时间内渲染出来,也就是说,可能是先渲染了一部分内容出来,那么我们想要的这部分先渲染出来的内容肯定是重要的,就可以让重要的内容的层叠顺序变得高。

    五、层叠上下文的元素

    根据MDN的定义,层叠上下文元素包括:

    • 文档根元素(<html>);
    • position 值为 absolute(绝对定位)或 relative(相对定位)且 z-index 值不为 auto 的元素;
    • position 值为 fixed(固定定位)或 sticky(粘滞定位)的元素(沾滞定位适配所有移动设备上的浏览器,但老的桌面浏览器不支持);
    • flex 容器的子元素,且 z-index 值不为 auto
    • grid 容器的子元素,且 z-index 值不为 auto
    • opacity 属性值小于 1 的元素;
    • mix-blend-mode 属性值不为 normal 的元素;
    • 以下任意属性值不为 none 的元素:
      • transform
      • filter
      • perspective
      • clip-path
      • mask / mask-image / mask-border
    • isolation 属性值为 isolate 的元素;
    • -webkit-overflow-scrolling 属性值为 touch 的元素;
    • will-change 值设定了任一属性而该属性在 non-initial 值时会创建层叠上下文的元素(参考这篇文章);
    • contain 属性值为 layoutpaint 或包含它们其中之一的合成值的元素。

    参考文章:

    MDN文档

    张鑫旭《深入理解CSS中的层叠上下文和层叠顺序》


    起源地下载网 » CSS之层叠上下文

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元