CSS3实现Drop-shadow

逆变盆景
• 阅读 4574

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

CSS3实现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);
 }

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

CSS3实现Drop-shadow

调整阴影

下面我们再通过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);
 }

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

CSS3实现Drop-shadow

调整阴影

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

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

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

CSS3实现Drop-shadow

点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
九路 九路
5年前
一篇文章带你了解CSS 渐变知识
CSS3渐变使您能够是你的背景颜色在两个或多个颜色之间平滑过渡。早些时候,你必须使用图像实现这些效果。然而,通过使用CSS3渐变可以减少下载时间和带宽的使用.此外,缩放的元素在缩放时看起来更好,因为渐变是由浏览器生成的。一、浏览器支持表中的数字指定完全支持该属性的第一个浏览器版本。(来源于百度)数字后面的w
徐小夕 徐小夕
5年前
轻松教你使用纯css实现水波动画
css3给我们前端开发带来了很便利,我们可以使用css3的新特新实现各种形状和动效,接下来笔者就来带大家介绍如何用css3实现H5Dooring编辑器(https://github.com/MrXujiang/h5Dooring)中的水波动画.(https://imghelloworld.osscnbeijing.aliy
徐小夕 徐小夕
5年前
轻松教你使用纯css实现H5-Doorin编辑器中的水波动画
css3给我们前端开发带来了很便利,我们可以使用css3的新特性实现各种形状和动效,接下来笔者就来带大家介绍如何用css3实现H5Dooring编辑器(https://github.com/MrXujiang/h5Dooring)中的水波动画.(https://imghelloworld.osscnbeijing.aliy
徐小夕 徐小夕
5年前
如何使用css3实现一个类在线直播的队列动画
之前在群里有个朋友问了这样一个问题,就是如何在小程序中实现类似直播平台的用户上线时的队列动画?作为一名前端工程师,解决方案无非以下2种:1.使用javascript根据条件来控制元素的样式实现队列动画2.用纯css3配合数据驱动模型来实现.大家都知道在现代的Web开发中,我们能使用Css实现的效果尽量不要用Js,所以我们应该优先考虑用C
徐小夕 徐小夕
5年前
轻松使用纯css3打造有点意思的故障艺术(附React/Vue加强组件版)
前言很早之前就看到国外很多酷炫的网站在实践"故障艺术",或者错位动画",感觉非常有意思,现在APP端的抖音启动界面有着这种设计的影子,作为一名用于探索未知的前端工程师,有必要好好实践一下这一设计.正文接下来笔者将带大家使用纯Css3来实现"故障动画",并将这一特效封装成React/vue组件,供大家学习和使用.先来看看实现的效果:
Stella981 Stella981
4年前
Flutter 实现酷炫的3D效果
!(https://oscimg.oschina.net/oscnet/2a34303ee391c70540d1747e4aa521b0b5e.png)老孟导读:此文讲解3个酷炫的3D动画效果。下面是要实现的效果:!(https://oscimg.oschina.net/oscnet/cacf46143ca941c8a
Wesley13 Wesley13
4年前
JS动画与CSS动画
一、JS动画(setIntervalsetTimeOutrequestAnimationFrame)优点:  1)过程控制能力强。可以对动画工程进行精准的控制,暂停、取消、开始、终止都可以。  2)动画效果多、炫酷。有一些效果是CSS动画所不能实现的  3)兼容性比较高缺点:   1)由于JS是通过不断的操
Wesley13 Wesley13
4年前
CSS实现背景色渐变
一、使用CSS3属性/ for firefox /backgroundimage: mozlineargradient(top,fefefe,ebebeb);/ for webkit core /backgroundimage: webkitgradient(linear,0 0,0 100