SVG小技巧:CSS filter:drop-shadow 妙用

2018-06-15 07:01:42  吐泡泡鱼

假设现在有这样一个需求,视觉需要给下面这张SVG图中的每一个元素都加上阴影,如图所示的阴影效果:

SVG小技巧:CSS filter:drop-shadow 妙用

大家第一想到的是用什么来实现呢?要是在之前,想也不用想,直接是设计师设计好后,切图就了事。

现在就得好好想想来,因为CSS3提供来两个实现阴影的属性即:box-shadow和drop-shadow。对前端有兴趣或者正在学习web前端的小伙伴,可以私信小编【学习】即可免费领取2018最新的一整套系统web前端学习教程!

估计大部分人都是想到了用box-shadow这个属性来实现,先来使用它来试试看,看会得到什么效果:

SVG小技巧:CSS filter:drop-shadow 妙用

我们的需求是需要给每一个鸟都加上阴影,而使用box-shadow,则并没有实现我们想要的效果。box-shadow顾名思意“盒阴影”,只是盒子的阴影。所以出现上面的效果也是意料之中了。

这个时候就是该轮到drop-shadow出场了,drop-shadow是CSS3中filter(滤镜)中阴影滤镜,它就符合真实世界的投影,非透明的颜色,就有投影;透明部分,光线穿过,没投影。

而我们的图形刚好又是SVG格式的,每一个元素就是些文本节点,刚好符合drop-shadow概念中的那样,有透明和非透明部分,所以用它再适合不过了。

drop-shadow语法如下:filter: drop-shadow(x偏移, y偏移, 模糊大小, 色值);

我们只需要使用drop-shadow就可以实现我们给每一个元素加阴影的需求:filter:drop-shadow(-25px 25px 25px rgba(26,58,70,0.7));

仅仅一句就可以实现下图所示的阴影效果:

SVG小技巧:CSS filter:drop-shadow 妙用

作者: janily

来源:掘金

×
  • 热门预测
  • 热门赛事
  • 推荐专家
  • 热门视频
  • 奇闻异事
      分享到微信朋友圈 ×
      打开微信,点击底部的“发现”,
      使用“扫一扫”即可将网页分享至朋友圈。
      热点/新闻
      换一批
      下载

      官方微信公众号:东方网体育

      官方App:东方体育

      官方球迷QQ群