W3C 定义标准而不创建实现这一事实导致了不同的解释,无论哪个浏览器“对或错”。
在所有浏览器中做你想做的事情的正确方法是:
<div style="position:relative; z-index:1;"> OUTERFOO
<div style="position:relative; z-index:1;">OUTERBAR
<div style="position:absolute; z-index:1;">BAR</div>
</div>
<div style="position:absolute; z-index:2;">FOO</div>
</div>
或者
<div style="position:relative; z-index:1;"> OUTERFOO
<div style="position:relative; z-index:1;">OUTERBAR
<div style="position:absolute; z-index:1;">BAR</div>
<div style="position:absolute; z-index:2;">FOO</div>
</div>
</div>
不需要带有荒谬数字的 ziindexes - 这会导致混乱。
基本上,当您使用 z-index 时,您应该定位所有兄弟元素和父元素,并且为了清楚起见,您应该对所有兄弟元素进行 z-index。这让人更加头疼。
您在问题中尝试执行此操作的方式违反了分层的基本规则,与此方式相同,例如:
<div><span></div></span>
您正在寻找使用 css 来打破 html 语法的嵌套规则的解决方案。我提供的示例在遵守这些规则的同时完成了您真正想要的。