[CSS揭秘]不规则投影

难点

普通元素添加border-radius所生成的形状添加box-shadow的效果都非常完美。但是当普通元素添加了伪元素或者半透明的装饰之后,box-shadow就会有点力不从心。因为boder-radius会无耻地忽视透明部分。

场景:

1. 半透明图像,背景图像,border-image

2. 具有点状、虚线或者半透明的边框,但是没有背景

3. 伪元素生成的对话气泡

4. 切角形状

5. 折角形状

6. 菱形图像

解决不规则形状的投影,目前最简单的方法就是使用filter滤镜,使用CSS滤镜最大的好处就是平稳退化。

常用的filter滤镜函数包括: blur() grayscale() drop-shadow()

滤镜会把任何非透明的部分都打上投影, 所以不建议对文本单独再设置text-shadow, 同时这个text-shadow与box-shadow产生的shadow效果是两回事。

box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);

BOX-SHADOW

filter: drop-shadow(2px 2px 5px rgba(0, 0, 0, 0.5));

Filter

下次细讲 blur()   grayscale()

原文地址:https://www.cnblogs.com/joyjoe/p/6201189.html