制作图像 picture 的阴影显示效果

文章

效果预览

imgShadow

主要结构

主要是两层,外层的 div 层主要是起 “相框” 的作用,里面的 img 放图片。

<div class="box-shadow">
    <img src="">
</div>

CSS渲染

“相框” 的主架

  • “相框” 要紧紧地包裹图片 => display:inline-block
  • 伪对象的相对偏移 => position: relative

CSS如下:

.box-shadow{
    position: relative;
    display:inline-block;
    z-index: 1;
    background: white;
}

伪对象实现阴影效果

左右两片,绝对定位,效果实现

.box-shadow::after,.box-shadow::before{
    z-index:-1;
    position:absolute;
    content:"";
    bottom:15px;
    left:10px;
    width:50%;
    top:80%;
    max-width:300px;
    background:#999999;
    -webkit-box-shadow:0 15px 10px #999999;
    -moz-box-shadow:0 15px 10px #999999;
    box-shadow:0 15px 10px #999999;
    -webkit-transform:rotate(-2deg);
    -moz-transform:rotate(-2deg);
    -o-transform:rotate(-2deg);
    -ms-transform:rotate(-2deg);
    transform:rotate(-2deg);
}

.box-shadow::after{
    -webkit-transform:rotate(2deg);
    -moz-transform:rotate(2deg);
    -o-transform:rotate(2deg);
    -ms-transform:rotate(2deg);
    transform:rotate(2deg);
    right:10px;
    left:auto;
}

结语

  • 注意 transform:rotate(2deg) 这种小转角的应用
  • 层叠的 element 可以显示出不错的效果
  • 用更少的 element 干更多的事
  • 精简代码
« 容器透明,内容不透明,随机变色 仿 SAE 的收藏夹图标,做了一个 Pure CSS... »

留下一句吧