使用 z-index 覆盖移动(和嵌套)的 div

Use z-index to overlay moving (and nested) divs

我有两个 div 相互嵌套。

div1 嵌套在 div2 中。

参见:link to fiddle

这是我的问题:红色 div (div1) 在 div2 内移动,我希望 div1 在越过边界时消失div2。换句话说,如果红色 div 离开蓝色表面,它应该消失。

我该怎么做或者我的错误在哪里?我试图将两者包装成一个更大的 div 并设置 z-indices 以便 div2 是最低的,div1 是中间的,而包装器 div最高。基本原理是一旦离开蓝色就让红色的消失在包装纸下 div - 没有用。

就像现在一样,红色div不管在蓝色[=31=之内还是在蓝色div之外,都是越走越远。

HTML

<div id="div2">
<div id="div1"></div>
</div>

CSS

#div1{
width: 30px;
height: 30px;
background-color: red;
position: absolute;
top: 20%;
left: 20%
}
#div2{
width: 300px;
height: 300px;
background-color: blue
}

我想这就是你想要的(简单地说知道我知道,哈哈):

#div2 {
overflow: hidden;
}

顺便说一句,你可以说 #div1 位于 #div2 内,但它不是 定位 的,因为绝对 属性.它将根据第一个定位的父级(不是 #div2)或 body :

https://jsfiddle.net/5a1w6hd0/

当父级有相对定位时(可以是任何东西,只要它不是静态的):

https://jsfiddle.net/5x2bcyqe/

溢出 属性 仍然有效(这是无关的)。设置 z-index 也可能很棘手 - 元素需要定位才能生效。