zoukankan      html  css  js  c++  java
  • 层叠上下文Stacking Context和层叠顺序Stacking Order

    1. Stacking context

    层叠上下文就是一条假想的网页面对用户的z轴上的延伸,层叠上下文中的元素根据其Stacking Level占用层叠上下文的空间。

    Stacking Context通常由以下元素生成:

    1. 根元素HTML

    2. z-index值不是auto的定位元素(absolute,fixed,relative)

    3. opacity小于1的元素

    4. transform不是none的元素

    5. 父元素display:flex,那么子元素会创建Stacking Context

    Stacking context和Stacking Level的关系:Stacking context元素包含的子元素均含有Stacking Level,如果此子元素又生成新的Stacking context,那么

    子元素所包含的子孙元素也具有Stacking Level。

    下面这张图表明:

    2) Stacking Order

    一个Stacking context元素里面的元素要怎么布局呢?这个时候Stacking Order就登场了。有七个Stacking Level如下:

    1. Background and borders — of the element forming the stacking context. The lowest level in the stack.

    2. Negative Z-Index — the stacking contexts of descendants elements with negative z-index.

    3. Block Level Boxes — in-flow non-inline-level non-positioned descendants.

    4. Floated Boxes — non-positioned floats

    5. Inline Boxes — in-flow inline-level non-positioned descendants.

    6. Z-index: 0 — positioned elements. These form new stacking contexts.

    7. Positive Z-index — positioned elements. The highest level in the stack.

    这7个规则记住就行。

    参考资料:

    https://philipwalton.com/articles/what-no-one-told-you-about-z-index/

    https://tiffanybbrown.com/2015/09/css-stacking-contexts-wtf/

    https://webdesign.tutsplus.com/articles/what-you-may-not-know-about-the-z-index-property--webdesign-16892

  • 相关阅读:
    面试问题之C++语言:C++中指针和引用的区别
    手撕代码:最长回文子串
    手撕代码:求字符串最长回文子序列
    手撕代码:用宏来实现获取数组的大小
    手撕代码之线程:thread类简单使用
    面试问题之计算机网络:OSI七层网络模型及相关协议
    C++各种输入
    C printf格式化输出
    记一次mac 安装MySQL-python 的惨痛经历
    记一次tomcat程序运行慢的处理过程
  • 原文地址:https://www.cnblogs.com/gogolee/p/6399331.html
Copyright © 2011-2022 走看看