z-索引和堆叠;从堆栈上下文中删除子级

问题描述 投票:0回答:3
html css position z-index
3个回答
4
投票

您的规则并没有真正应用于您希望它们应用的元素。您需要在要定位的元素上显式设置 z 索引,在您的情况下,该元素是 block2 的 div 子元素。通过简单地修改第一个选择器:

#block1, #block2 , #block3 {

#block1, #block2 div, #block3 {

您的堆叠顺序已更正。您的 z-index 规则应用于父级,而子级继续使用默认的 auto。在您的情况下,通过设置 #block2 div 上的位置,您可以允许您的小部件位于 block2 子 div 的顶部。

jsFiddle 示例


1
投票

我想你不需要改变

#widget
的位置。在我看来,答案就在于你的问题本身。 看看这个

编辑CSS:

#block1{
    background-color: #abc;
    color: #123;
    z-index:3;
}

#block3 {
    background-color: #abc;
    color: #123;
    z-index:1;
}

1
投票

一个可行的解决方案是使用 div 的

position
堆叠顺序,而不是在此处使用 z-index。因此不会形成不需要的堆叠上下文。

块 1 和 3 获取默认值

position: static

块 2 得到

position: relative
(超过 1 和 2)

并且只有小部件才会获得 z 索引,这会将其移动到所有部件之上!

http://jsfiddle.net/4eENM/

© www.soinside.com 2019 - 2024. All rights reserved.