CSS3实现Drop-shadow

326 查看

我们可以通过 CSS3 中的box-shdowtransform 来实现酷炫的Drop-shadow效果:

下面记录一下是实现步骤。

DOM 结构

我们仅仅需要一个div作为主体,阴影可借助伪元素:before:after来实现。所以我们的 DOM 结构非常简单。

<div class="drop-shadow">drop shadow effect</div>

添加阴影

给两个伪元素添加阴影,暂时先搞定左边,右边的阴影稍后再处理。

.drop-shadow:before,
 .drop-shadow:after {
   content: "";
   position: absolute;
   z-index: -1;
   bottom: 15px;
   left: 10px;
   width: 50%;
   height: 20%;
   box-shadow: 0 15px 20px rgba(125, 125, 125, 0.8);
 }

现在,我们看到的是这个样子:

调整阴影

下面我们再通过transform来旋转一下阴影的角度,这样看起来更有立体感。

.drop-shadow:before,
 .drop-shadow:after {
   content: "";
   position: absolute;
   z-index: -1;
   bottom: 15px;
   left: 10px;
   width: 50%;
   height: 20%;
   box-shadow: 0 15px 20px rgba(125, 125, 125, 0.8);
   transform: rotate(-5deg);
 }

这样我们就完成了一边的制作了:

调整阴影

接下来,我们只需要把其中一个阴影挪到右边即可。

.drop-shadow:after {
   right: 10px;
   left: auto;
   transform: rotate(5deg);
 }

这样,左边的阴影就翻转到了右边,大功告成: