用CSS实现一个类似Elementplus的文字虚化效果
我们可能看到过这样的一个效果:页面中的内容滚动穿过某个固定元素时,会产生虚化的视觉效果,能看出文字的轮廓,但是却无法看到具体的内容,给人一种哎呦?不错哦的感觉。
我们来拿element-plus官网作为案例,看看它是如何实现的,然后我们再自己照着实现一版。
比如正常的文字显示是这样的:
正常显示
虚化之后看起来是这个样子:
虚化一下
这个是element-plus官网中首页的效果,顶部有一个固定高度的头部横条,当页面滚动的时候,横条下面的文字就会显示成上面图中虚化后的样子。
首先来分析一下,如果是我们自己实现一个这样的效果,该怎么做呢?看来这个头部横条不能是一个纯白色的背景,因为要能看到文字,所以应该要有一个透明度,但是不能完全透明,因为它看起来不是那么的黑,然后我们观察到有毛玻璃的效果,所以我们要给它模糊一下。
先来做一个最初的原图,在这个基础上尝试几种方案:
原图
从上面的分析中我们可以知道,主要的手段就是:背景+模糊。
我们先来用第一种方案做一下:背景透明度+模糊
效果
它的代码非常简单{ background-color: rgba(255,255,255,0.5); backdrop-filter: blur(4px); }
我们可以通过背景透明度和模糊的程度来调整视觉效果。
其中vite的官网就是这样实现的,只是参数有所改变,我们来看下它的效果和代码:
效果{ backdrop-filter: saturate(50%) blur(8px); background: rgba(255,255,255,.7); }
我们再看elemen-plus官网中的第二种方案:背景图+模糊
效果
它的代码也很简单,我们可以对它简单的分析一下。{ background-image: radial-gradient(transparent 1px,#ffffff 1px); background-size: 4px 4px; backdrop-filter: saturate(50%) blur(4px); }
这里用到了径向渐变,径向渐变默认从中心向外扩散,其中transparent和#ffffff表示从透明过渡到纯白,两个1px的作用就是在1px处直接从透明变为白色,不产生渐变的过渡效果,因此从中心到1px距离处都是透明的,也就是半径为1px的圆内都为透明色,从1px之外都是显示成白色,它这里在实现的时候使用了单位区域4px的大小来绘制背景,然后通过背景重复的方式来平铺整个元素。
可以这样来理解,单位区域内,透明色为半径是1px的圆的范围,那么直径就是2px,为了分布平均,因此左右和上下都加上了1px的纯白,我们来设定一下background-repeat为no-repeat,看一下单位区域的效果,为了明显我们把颜色改一下:
单位区域
这就是单位区域在页面中左上角显示的样子,红色就是原来的透明色,黑色就是原来的白色,为了看得明显,我把页面放大了500%,如果我把背景设置为重复:
背景重复
可以看到就是这个样子,因此它后面的文字就会有一部分通过透明区域显示出来:
显示
这个时候我们再加上模糊效果,那么就会显示成官网中的样子了。
那么还有没有其他的方法呢?
有!思路跟第二种类似,只不过我们不用径向渐变,而是使用线性渐变。
我们可以看到,径向渐变有误伤的像素,4px的大小会覆盖两个像素点,使我们看不见后面的文字,而且圆形不能使文字完全露出来。
最好是一个像素看不见,一个像素能看见,这样就像蒙了一层纱布一样均匀。
要想实现这样的效果,我们首先把单位区域设置成2px大小的正方形,然后借鉴一下CSS3 Patterns Gallary 的鬼斧神工:
单位区域
我们通过设置透明色和黑色来展示样子,同样页面放大了500%。代码如下:{ background-image: linear-gradient(45deg, black 25%, transparent 25%, transparent 75%, black 75%, black), linear-gradient(45deg, black 25%, transparent 25%, transparent 75%, black 75%, black); background-size: 2px 2px; background-position: 0 0, 1px 1px; }
我们再把背景重复一下:
背景重复
这样就变成了一个透明像素一个黑色像素。我们把黑色变成白色再看实际的文字显示:
效果
可以看到,文字就好像每隔一个像素点都被掏空了一样。
然后我们再加上之前用到的模糊,调整一下视觉效果:
效果
这样就有了毛玻璃叠加纱布的视觉效果。完整代码如下:{ background-image: linear-gradient(45deg, black 25%, transparent 25%, transparent 75%, black 75%, black), linear-gradient(45deg, black 25%, transparent 25%, transparent 75%, black 75%, black); background-size: 2px 2px; background-position: 0 0, 1px 1px; backdrop-filter: blur(4px); }
原理不难,技术也是很简单,都是一些好玩的css特性,实现的方式也很多。
创造力是无穷的,就看谁的花样多!
毒鸡汤赋今有一文,名曰鸡汤。涉及内容,天高地广。所传范围,四面八方。文人白丁,士农工商。信手拈来,当与不当。谈及世态,尽是炎凉。论及人生,皆为沧桑。无欲无求,唯余健康。教人处世,定要忍让。
我爱上一个人我爱上一个人,14年过去,我才发现,我曾经就喜欢他。如今跟他联系上,我发现我爱上他了。他也爱我,可他自己却没承认。他总是安慰我,鼓励我,给我温暖,陪我聊天,让我开心。14年前,我总
看人抄书能赚钱,我看行不行,就当锻炼书法今天是我第一天学人抄书的一天,这几天看人抄书的成绩不错,也想来赚一赚这零花钱。这是我抄我写的,也在这一过程中有了些许感悟,也是自己的一点小想法。世界的缘分总是说不清,有人觉得是自己
不必羡慕任何人,过好自己的生活就好头号创作家文滕小七图均来自网络是从什么时候开始,道理和人生感悟都是自己悟出来的。很多时候,一些你纠结的想不明白的事,有可能在一瞬间,你就不纠结不犹豫了。还记得我之前写过一篇文章叫希
谁还没有一段刻骨铭心往事我和她是同学,虽说只是在初中相处了一年,但她给我的感觉在我脑海深处,依旧记忆犹新。她比较文静,而我非常好动。很难想象,后来我和她居然会走到一起。如果非要找一个共同点的话,那就是数学
王仕军主持召开首届亚太经济与文化交流论坛摘要首届亚太经济与文化论坛在人民大会堂隆重召开,由中国科协中国国际经济技术合作促进会和亚太经济与文化交流协会联合主办,施氏国际投资集团有限公司承办中国科学家杂志社书记常务社长王仕军
从爱旭的暴涨看通威股份的估值分析年内签订长单累计近8000亿,硅片降价成硅料先导指标今年以来,硅料价格一路上涨至30万元吨,并保持高位坚挺。通威股份协鑫科技等硅料龙头都在争分夺秒进行硅料项目的建设,力争早日建成投
牛市来了?最近股市里最热的话题,应该离不开牛市来了这个话题。是不是真的牛市来了?不可否认的是,人心思长,毕竟在A股,除了机构,散户想赚钱,只能靠股市上涨。那么现在的市场满足牛市的条件了吗?远
搞钱人必看的入门级理财书籍作为一个从来没有关注过理财,甚至觉得理财根本就是一个虚无缥缈的概念。对于我这样一个普通人,曾经觉得只有那些资产过百万千万上亿的人才需要的东西,巴比伦最富有的人这本书真的改变了我的认
1秒丢了1100万今天,中证1000股指期货主力合约,上演了一秒跌停的乌龙指。集合竞价打到跌停,开盘第一秒恢复。可能是集合竞价期间挂错单子了,结果1秒损失了差不多1100多万吧。乌龙指,是很随机的异
油价调整消息今天11月8日,加油站调价后各地9295号汽油售价油价调整刚刚结束,此次油价上调约0。12元升,而新一轮油价调整计价周期也正式开始了,大家也要持续关注油市的最新变化,截至本次计价周期的第1个工作日,原油综合变化率2。98,预计新一