CSS3 不规则投影(filter:drop-shadow)滤镜

<a href='https://codepen.io/lip90/pen/YQyYYL/'>查看图片代码</a>

通过这张图,可以很明显的看见这两个投影的差别。
box-shadow会忽视透明部分。

这类情况包括:

  • 半透明图像、背景图像、或者 border-image;
  • 元素设置了点状,虚线或半透明的边框,但没有背景(或者当 background-clip 不是 border-box时);
  • 对话气泡,它的小尾巴通常是用伪元素生成的;
  • “切角效果”;
  • 折角效果;
  • 通过clip-path 生成的形状。

filter:drop-shadow属性是从SVG那里借来的,尽管CSS滤镜基本上就是SVG滤镜,但我们并不需要掌握任何SVG知识,就可以对此属性加以利用。
drop-shadow()滤镜可以接受的参数基本上跟 box-shadow属性是一样的,但不包括扩张半径、不包括 inset 关键字,也不支持逗号分隔的多层投影语法
它们写法的不同:

 box-shadow: 4px 4px 4px #fce;
filter: drop-shadow(4px 4px 4px #fce);

CSS滤镜最大的好处在于,它们可以平稳退化:当浏览器不支持时,不会出现问题,只不过没有任何效果而已。

filter: drop-shadow 另一件不容忽视的事情就是:任何非透明的部分都会被一视同仁地打上投影,包括文本(如果背景是透明的)。而且并不能被:text-shadow:none; 取消掉文字的投影。如果你已经为上过投影了,那它将被打上两层投影。

text-shadow:4px 4px #fff;
filter: drop-shadow(4px 4px 2px #fce);

参考书籍:Lea Verou《CSS揭秘》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    Yuann阅读 1,657评论 0 7
  • CSS3里的filter滤镜是个很酷炫的元素。本篇介绍一下几个常用的滤镜效果。 drop-shadow sepia...
    张歆琳阅读 1,762评论 1 11
  • text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果。随着HTML5和CSS...
    arlene112阅读 2,294评论 0 1
  • 今天早上完成了《七年就是一辈子》最后一小部分的阅读,这也最终符合了我一周读一本实用书籍的目标,最后一天留到考完试,...
    晚阳初彤阅读 293评论 0 0
  • iOS开发拓展篇——如何把项目托管到GitHub 说明:本文主要介绍如何把一个OC项目托管到Github,重操作轻...
    文顶顶阅读 995评论 4 10