怎样用CSS实现透视背景,方法是什么
Admin 2022-11-21 群英技术资讯 346 次浏览
本技巧源自于一名群友的提问,如何构建如 ElementUI 文档的一种顶栏背景特效,看看效果:
仔细看,在页面的的滚动过程中,顶栏的背景不是白色的,也不是毛玻璃效果,而是能够将背景颗粒化:
准确而言,是一种基于颗粒化的毛玻璃效果,元素首先是被颗粒化,其次,元素的边缘也是在一定程度上被虚化了。那么,我们该如何实现这个效果呢?
上述效果看似神奇,其实原理也非常简单。主要就是颗粒化的背景 background加上backdrop-filter: blur()
即可。
首先,我们需要实现颗粒背景。
我们利用 background
实现这样一个背景:
<div></div>
登录后复制
div {
background: radial-gradient(transparent, #000 20px);
background-size: 40px 40px;
}
登录后复制
从透明到黑色的径向渐变效果如下:
需要注意的是,图里的白色部分其实透明的,可以透出背后的背景。此时,如果背景后面有元素,效果就会是这样:
好,我们将 background: radial-gradient(transparent, #000 20px)
中的黑色替换成白色,效果如下:
这里为了展示原理,每个径向渐变的圆设置的比较大,我们把它调整回正常大小:
div {
background: radial-gradient(transparent, rgba(255, 255, 255, 1) 2px);
background-size: 4px 4px;
}
登录后复制
这样,我们就成功的将背景颗粒化:
当然,此时透出的背景看上去非常生硬,也不美观,所以,我们还需要 backdrop-filter: blur()
,我们加上一个试试看:
div {
background: radial-gradient(transparent, rgba(255, 255, 255, 1) 2px);
background-size: 4px 4px;
backdrop-filter: blur(10px);
}
登录后复制
这样,我们就实现了一开始所展示的效果:
这里需要注意的是,background-size
的大小控制,和不同的 backdrop-filter: blur(10px)
值,都会影响效果。
完整的 DEMO,你可以戳这里:CodePen Demo -- Mask Filter
当然,掌握了这个技巧之后,我们可以尝试替换掉 background: radial-gradient()
图形,及改变 background-size
,尝试各种不同形状的透视背景。简单举几个例子:
div {
background: linear-gradient(45deg, transparent, #fff 4px);
background-size: 6px 6px;
backdrop-filter: saturate(50%) blur(4px);
}
登录后复制
这里使用了 linear-gradient()
替换了 radila-gradient()
:
原文地址:https://www.cnblogs.com/coco1s/p/16549752.html
作者:ChokCoco
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本文介绍了CSS中提升优先级属性!important的用法问题总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
CSS3如何实现倒计时效果?一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
<div><p>1111</p></div>div{ width:980px;<br> background-color:#ccc;<br> height:300px;}p{width:100%;<br> /*width:auto;*/padding:10px;<br> background-color:#000;<br>}如果是p的width:100%,则说明p的width会得到980px就已经充满div区域,然后自己又有padd ...
这篇文章给大家分享的是CSS选择器的使用,CSS中选择器主要分为:基本选择器、属性选择器、组合选择器与伪类选择器四个大类,下文介绍了他们的使用,文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起学习一下吧。
实现的原来就是:在一个宽高为0像素的块状元素中设置border属性,例如.box{width:0px;height:0;border-bottom:50px#F00solid;border-left:50px#03Fsolid;border-right:50px#F90solid;border-top:50px#6C0solid;}在浏览器中的显示如图:这样就有上下左右四个三角形了,再把除了要用的三角外的其他3个三角(border)颜色设置 ...
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008