ITPub博客

首页 > > > css实现不规则图形的阴影(如对话框)

css实现不规则图形的阴影(如对话框)

作者:25minutes 时间:2019-09-29 09:57:03 0 删除 编辑

在日常开发中会使用带箭头的弹出对话框,有时为了美观或者突出,会添加一个阴影。由于图形不规则且可能是由多个元素拼接而成的,这样box-shadow属性可能不能满足需求。这里推荐一个类似的属性,filter下的drop-shadow。

<div class="triangle">
</div>
.triangle{
 width: 200px;
 height: 60px;
 position: relative;
 filter: drop-shadow(0 0 5px #ccc);
 background-color: #fff;
}
.triangle:after{
 content: "";
 position: absolute;
 left: 20px;
 bottom: -10px;
 width: 20px;
 height: 20px;
 background-color: #fff;
 transform: rotate(45deg);
}

效果图:

相同情况下,换成box-shadow,效果图:

即伪类构造的三角并不在阴影范围内。

回到drop-shadow,将三角的位置下移到和主体完全隔离

<pre>

.triangle{
 width: 200px;
 height: 60px;
 position: relative;
 filter: drop-shadow(0 0 5px #ccc);
 background-color: #fff;
}
.triangle:after{
 content: "";
 position: absolute;
 left: 20px;
 bottom: -50px;
 width: 20px;
 height: 20px;
 background-color: #fff;
 transform: rotate(45deg);
}

效果图:

即,drop-shadow是改元素整体轮廓(包括子元素)的阴影。这对于我们给复杂图形赋予阴影效果提供了很大的帮助。

PS:更接近于真正的阴影,drop-shadow对背景色透明的元素不起作用。而box-shadow对于背景色透明的元素依然是起作用的。



子瑜说IT

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4328/viewspace-3165083/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-17

  • 博文量
    336
  • 访问量
    14912