我有两个具有阴影并且位于相同z-index上的div。
他们目前互相投下阴影。
我希望他们在背景上投下阴影,但不要互相投射。我该怎么做?
答案 0 :(得分:10)
您不能拥有两个具有相同堆叠级别的不同元素。元素始终具有不同的堆叠级别。这就是你的第二个元素遮蔽第一个元素的原因。 (没有z-index,DOM中的外观决定了堆叠级别)
Z-index仅适用于非静态定位元素(相对,绝对),因此不会有任何帮助。
IMO你可以达到你想要的效果而不需要一点点css-hacking(在元素上声明非静态位置以及另外一个包装元素 - 不要声明z-index在父母,但仅限于子元素。)
但如果我错了,请随时纠正我。
答案 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;
}