Chrome CSS中的堆栈

fwzugrvs  于 2023-10-14  发布在  Go
关注(0)|答案(1)|浏览(79)

我正在尝试理解CSS中的堆栈。从我在网上读到的,以下是堆叠顺序:
1.构成堆叠上下文的元素的背景和边框
1.具有负堆栈级别的定位子体
1.正常流中的块级后代
1.漂浮后代
1.正常流中的内联级后代
1.堆栈级别设置为auto或(零)的定位子体
1.具有正堆栈级别的定位子体
我尝试了几个实验,它们似乎都证实了这个顺序。但后来我开始在https://github.com/home上查看Github的主页,遇到了一个似乎与此不一致的案例。我也在寻求同样的解释。
在Github的主页上,有一个部分写着“加速高质量的软件开发。我们的人工智能平台通过提高开发人员速度的工具推动创新。本节位于div中,类为home-campaign-productivity js-section overflow-hidden px-3 pb-8 pt-5divstatic的位置。这个div的一个兄弟应用了类container-xl position-relative,它有relative定位,z-index设置为auto。这个div有一个子图像,它的位置是absolute。此图像是在登录页面顶部可见的主要背景图像。
令人惊讶的是,即使这个图像的位置是absolute,它也会出现在位置是static的文本下面。
请大家帮忙解释一下。

c7rzv4ha

c7rzv4ha1#

home-campaign-productivity类的div中,包含文本,是一个带有transform的h3元素。该变换
.导致创建堆栈上下文。实现必须在其父堆栈上下文中绘制它创建的层,如果它是具有z索引的定位元素,则使用相同的堆栈顺序:0**。如果一个带有transform的元素被定位,则z-index属性按照[CSS 2]中的描述应用,除了auto被视为0,因为总是创建一个新的堆栈上下文。
因此,它属于步骤6,与img元素相同,并且由于它在树顺序中较晚,因此它及其后代绘制在图像上。

相关问题