理解固定位置的 Z-Index 悖论
处理 HTML 元素时,z-index 属性控制堆叠顺序,决定哪个元素出现在页面上其他元素的上方或下方。但是,当使用 z-index 且元素定位为固定且静态时,会出现意外行为。
考虑以下代码片段:
#over { width: 600px; z-index: 10; } #under { position: fixed; top: 5px; width: 420px; left: 20px; z-index: 1; }
您希望显示带有 #over 的元素位于 #under 后面,因为它具有更高的 z-index 值。然而,固定元素(#under)将顽固地覆盖#over,忽略其假定的较低优先级。
这是因为固定定位会从正常文档流中删除元素。它根据视口定位元素,本质上是在顶部创建一个单独的图层。因此,固定元素的 z 索引不会与非固定元素的 z 索引交互。
要纠正此问题并允许 #over 出现在 #under 后面,请添加position:relative ;到 #over:
#over { width: 600px; z-index: 10; position: relative; }
这个小调整在 #over 中建立了一个新的本地堆叠上下文,使其 z 索引能够影响该上下文中的元素。现在,#under 将正确显示在 #over 后面,尊重预期的堆叠顺序。
请记住,固定定位是在页面上创建绝对定位的强大工具,但在与 z-index 交互时存在局限性在某些情况下。通过应用position:relative技巧,您可以重新控制堆叠顺序并达到您想要的分层效果。
以上是为什么固定仓位会破坏 Z 索引排序?的详细内容。更多信息请关注PHP中文网其他相关文章!