提问人:Vaibhav 提问时间:9/30/2023 更新时间:9/30/2023 访问量:48
CSS 中的堆叠
Stacking in CSS
问:
我正在尝试理解 CSS 中的堆叠。从我在网上读到的内容来看,以下是堆叠顺序:
- 构成堆叠上下文的元素的背景和边框
- 具有负堆栈级别的定位子体
- 正常流中的块级后代
- 漂浮的后代
- 正常流中的内联级后代
- 堆栈级别设置为 auto 或 (zero) 的定位子体
- 具有正堆栈级别的定位子体
我尝试了几个实验,它们似乎都证实了这个顺序。但后来我开始在 https://github.com/home 上查看 Github 的主页,并遇到了一个似乎与此不符的案例。我正在寻求同样的解释。
在 Github 的主页上,有一个部分写着“加速高质量的软件开发。我们的人工智能平台通过提高开发人员速度的工具推动创新。此部分位于 with 类 中。有位置。其中的同级应用了类,并且定位设置为 。这有一个有位置的孩子的形象。此图像是主要背景图像,显示在着陆页顶部。div
home-campaign-productivity js-section overflow-hidden px-3 pb-8 pt-5
div
static
div
container-xl position-relative
relative
z-index
auto
div
absolute
令人惊讶的是,即使这张图片有位置,它也会出现在有位置的文本下方。absolute
static
请一些人帮忙解释一下。
答:
在带有 class 但包含文本的 div 中,是一个带有转换的 h3 元素。此转换home-campaign-productivity
...导致创建堆叠上下文。实现必须在其父堆叠上下文中绘制它创建的层,其堆叠顺序与该图层是具有 z-index 的定位元素时使用的堆叠顺序相同:0。如果定位了具有转换的元素,则 z-index 属性将按照 [CSS2] 中所述应用,但 auto 被视为 0,因为始终会创建新的堆叠上下文。
因此,它属于第 6 步,与 img 元素相同,并且由于它在树的顺序中较晚,因此它及其后代在图像上绘制。
评论