两个div与同一级别的投影

时间:2012-07-23 12:39:02

标签: html css3

我有两个具有阴影并且位于相同z-index上的div。

他们目前互相投下阴影。

我希望他们在背景上投下阴影,但不要互相投射。我该怎么做?

2 个答案:

答案 0 :(得分:10)

您不能拥有两个具有相同堆叠级别的不同元素。元素始终具有不同的堆叠级别。这就是你的第二个元素遮蔽第一个元素的原因。 (没有z-index,DOM中的外观决定了堆叠级别)

Z-index仅适用于非静态定位元素(相对,绝对),因此不会有任何帮助。

IMO你可以达到你想要的效果而不需要一点点css-hacking(在元素上声明非静态位置以及另外一个包装元素 - 不要声明z-index在父母,但仅限于子元素。)

Example

但如果我错了,请随时纠正我。

答案 1 :(得分:6)

使用这个简单的CSS技巧,只需创建伪元素:after,将其z-index设置为低于div并给它一个阴影。以下代码将删除每个div下的非重叠阴影。 http://jsfiddle.net/on38a8pz/1/上的工作示例。

div {
    position: relative;
}

div:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    box-shadow: 0 0 30px black;
    z-index: -1;
}