两个div与同一级别的投影

Mr_*_*imp 6 html css3

我有两个div有阴影并且在同一个z-index上.

他们目前互相投下阴影.

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

Chr*_*oph 10

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

Z-index仅适用于非静态定位元素(相对,绝对),因此也无济于事.

IMO你无法实现你想要的效果而没有一点点css-hacking(声明元素上的非静态位置与一个额外的包装元素相结合 - 不要在父级上声明z-index,而只在子级上声明z-index-元件).

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


Mic*_*les 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;
}
Run Code Online (Sandbox Code Playgroud)