• 层叠上下文(The stacking context)


    MDNThe stacking context

    层叠上下文是HTML元素的三维概念,这些HTML元素在一条假想的相对于面向(电脑屏幕的)视窗或者网页的用户的z轴上延伸,HTML元素依据其自身属性按照优先级顺序占用层叠上下文的空间。

    在之前的增加 z-index 的例子中, 某些 DIV 的渲染顺序是由 z-index 的值影响的。这是因为这些 DIV 具有 使他们形成一个层叠上下文  的特殊属性

    文档中的层叠上下文由满足以下任意一个条件的元素形成:

    • 根元素 (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"的元素

    在层叠上下文中,其子元素同样也按照上面解释的规则进行层叠。 特别值得一提的是,其子元素的 z-index 值只在父级层叠上下文中有意义。子级层叠上下文被自动视为父级层叠上下文的一个独立单元。

    总结:

    • 给一个 HTML 元素定位和 z-index 赋值创建一个层叠上下文,(opacity 值不为 1 的也是相同)。
    • 层叠上下文可以包含在其他层叠上下文中,并且一起创建一个有层级的层叠上下文。
    • 每个层叠上下文完全独立于它的兄弟元素:当处理层叠时只考虑子元素。
    • 每个层叠上下文是自包含的:当元素的内容发生层叠后,整个该元素将会 在父层叠上下文中 按顺序进行层叠。
    Note: 层叠上下文的层级是 HTML 元素层级的一个层级,因为只有某些元素才会创建层叠上下文。可以这样说,没有创建自己的层叠上下文的元素 将被父层叠上下文包含。
  • 相关阅读:
    Linux远程连接Windows桌面
    Ubuntu telnet
    Linux Source命令及脚本的执行方式解析(转)
    Java图形与文本(18)
    从把3000行代码重构成15行代码谈起
    学习:java原理—反射机制
    BugFix系列---开篇介绍
    回调函数透彻理解Java
    Java回调函数的理解
    Java注解浅谈
  • 原文地址:https://www.cnblogs.com/qianduanjingying/p/5716333.html
Copyright © 2020-2023  润新知