我能否覆盖父元素的z-index继承?

34

在使用绝对定位时,是否有办法覆盖父元素的 z-index 继承。我希望 2222 div 在 0000 div 的上方:

<div style="background-color:green; z-index:10; position:relative">
     OOOO
</div>

<div style="background-color:yellow; z-index:5; position:relative">
     1111
     <div style="position:absolute; background-color:red; 
                 z-index:15; top:-8px; left:20px">
         2222
     </div>
</div>

我无法改变0000或1111 div的z-index,我试图相对于1111元素定位我的2222元素。

1个回答

32

我相信 z-index 是相对于最近的定位元素的。所以,如果你在 "1111" div 中有两个 div,它们可以相对于彼此进行 z-index 排序,但由于 2222 是 1111 的子元素,所以不能将其相对于 0000 进行 z-index 排序,并且始终会位于 1111 的上方。


3
如果我理解正确,无法相对于其父兄弟元素调整元素的"z-index"。那么我的解决方法是直接将子元素2222添加到document.body中,并使用$().offset()计算其相对于1111的绝对位置。 - Marek
3
我有这个问题,考虑到我们的CMS的限制,真正“修复”这个问题是不可能的,所以我必须想出一些方法来组合代码,使模态窗口正常工作。我想到的最好的办法是,在弹出模态窗口时重置父级的层叠顺序。在关闭模态窗口时,通过调用关闭模态窗口函数重新附加原始层叠顺序。 - Christopher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接