我目前正在开发一个使用 CSS3 的“页面提升”效果的网站(请参阅此处的演示项目 2-4),对于我的第一页,它运行良好。
但是,我现在尝试将其添加到具有背景颜色的元素(工作元素在元素内部具有.lift
元素,这使得阴影位于堆叠上下文中的所有内容下方),但在非工作元素上, z-indexing 似乎有问题。它将走向一个极端(阴影位于背景顶部;z-index:1
在.lift
元素上)或另一个(阴影不仅位于它所在的元素:after
下方,而且位于该元素的父元素下方;不在z-index
元素上.lift
)。
这是我遇到的问题的演示,并附有一些注释。阴影应该在白色盒子的下方,但在蓝色盒子的顶部。有没有办法解决这个问题,以便阴影位于正确的位置,而不会将背景移动到.lift
元素的子元素(ren)或在元素周围添加无关的包装器.lift
?
这是代码:
<div class="main">
<div class="lift"></div>
</div>
.main {
background: #00f;
height: 151px;
width: 400px;
}
.lift {
position: relative;
z-index: 1;
margin-bottom: 10px;
height: 150px;
width: 200px;
background: #fff;
}
.lift:after {
content:'';
position: absolute;
z-index: -2;
width: 75%;
max-width: 300px;
height: 15%;
bottom: 24px;
right: 10px;
-webkit-box-shadow: 0 20px 10px rgba(0, 0, 0, 0.5);
-moz-box-shadow: 0 20px 10px rgba(0, 0, 0, 0.5);
box-shadow: 0 20px 10px rgba(0, 0, 0, 0.5);
-webkit-transform: rotateZ(3deg) skewX(10deg);
-moz-transform: rotateZ(3deg) skewX(10deg);
-ms-transform: rotateZ(3deg) skewX(10deg);
-o-transform: rotateZ(3deg) skewX(10deg);
transform: rotateZ(3deg) skewX(10deg);
}