但是,当然,事情比这稍微复杂一点,这是为什么:有某些元素被视为堆叠上下文,即使他们不是。更具体地说,这些元素可能会被误认为是自己生成堆叠上下文的元素,而实际上它们并没有。他们只是被这样对待。常规的堆叠上下文和这种类型的“wannabe堆叠上下文”之间的区别在于:由这个“wannabe堆叠上下文”的子元素生成的任何堆叠上下文都属于父堆叠上下文,而不属于这个“wannabe堆叠上下文”。这里是“wannabe堆叠上下文”是如何生成的:浮点值不是 z-index值显示值或 的元素< div id = “ div3 “ > < / div >< div id = “ div4 “ > < / div >< div id = “ div5 “ > < / div >< / div >< / div >让我们描绘一个更清晰的画面:例如,您有一个根元素(#div1),它生成一个堆叠上下文。这个堆叠上下文包含一个浮动元素(#div2)。现在,正如您在示例中看到的,这个浮动元素有三个子元素。其中一个子元素(#div3)进一步生成一个堆叠上下文。这个生成堆叠上下文的子元素属于上面提到的根元素生成的堆叠上下文。根元素(#div1)的子堆叠上下文是元素#div2和#div3。然而,被浮动元素的其他子元素(#div4, #div5)将被浮动元素视为其堆叠上下文的生成器。