错误方案 —— 利用box-shadow
在面对规则的矩形或者圆形,用box-shadow生成的投影可以说堪称完美。
但是面对不规则图形,再用box-shadow生成的投影就有点力不从心了。
比如:
可以看出,这时圆角矩形的投影打到三角形上面了。在某些情况下看起来可能会有点不那么和谐。
box-shadow不适用在伪元素和半透明的装饰上。
正确的方案 —— filter
滤镜效果规范提供了一个针对这个问题的解决方案,通过一个新的filter属性,从SVG借来的。但是,尽管CSS滤镜基本上是从SVG滤镜而来,但是它们不需要任何SVG的知识。相反,它们通过一些便利的功能函数指定即可,如blur()、grayscale()、还有drop-shadow()!只要你想要,你甚至可以链式应用多个滤镜,用空格把它们分开,如下:
filter: blur() grayscale() drop-shadow();
drop-shadow()滤镜接受和基本box-shadow相同的参数,但是没有扩散半径,没有inset关键字,不能用逗号分隔多个不同的阴影。比如说,与其这样写:
box-shadow: 2px 2px 10px rgba(0,0,0,.5);
我们可以这样写:
filter: drop-shadow(2px 2px 10px rgba(0,0,0,.5));
示例:
HTML代码
<div>Rabbit</div>
CSS代码
div { text-align: center; line-height: 200px; font-size: 40px; color: #cffdf8; width: 200px; height: 200px; position: relative; background: #216583; border-radius: 20px; filter: drop-shadow(2px 2px 10px rgba(0,0,0,.6)); } div:after { content: ''; display: block; width: 30px; height: 30px; background: #216583; position: absolute; z-index: -999; right: -15px; top: 20 transform:rotate(45deg); }
这里利用伪元素生成小三角形。
更多web前端开发知识,请查阅 HTML中文网 !!
以上就是css怎么设置不规则形状阴影?的详细内容,更多请关注易知道|edz.cc其它相关文章!