在日常开发中会使用带箭头的弹出对话框,有时为了美观或者突出,会添加一个阴影。由于图形不规则且可能是由多个元素拼接而成的,这样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);
}
web前端开发学习Q-q-u-n: 731771211,分享学习的方法和需要注意的小细节,不停更新最新的教程和学习方法(详细的前端项目实战教学视频)
效果图:
相同情况下,换成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对于背景色透明的元素依然是起作用的。
自己是一个6年的前端工程师,希望本文对你有帮助!
这里推荐一下我的前端学习交流扣qun:731771211 ,里面都是学习前端的,如果你想制作酷炫的网页,想学习编程。自己整理了一份2019最全面前端学习资料,从最基础的HTML+CSS+JS【炫酷特效,游戏,插件封装,设计模式】到移动端HTML5的项目实战的学习资料都有整理,送给每一位前端小伙伴,每天分享技术
点击:加入
网友评论