除了filter还有什么置灰网站的方式?
大家都知道,当一些重大事件发生的时候,我们的网站,可能需要置灰,像是这样:
当然,通常而言,全站置灰是非常简单的事情,大部分前端同学都知道,仅仅需要使用一行 CSS,就能实现全站置灰的方式。
像是这样,我们仅仅需要给 HTML 添加一个统一的滤镜即可: html { filter: grayscale(.95); -webkit-filter: grayscale(.95); }
又或者,使用 SVG 滤镜,也可以快速实现网站的置灰: // ... html { filter: url(#grayscale); }
大部分时候,这样都可以解决大部分问题。不过,也有一些例外。譬如,如果我们仅仅需要置灰网站的首屏,而当用户开始滚动页面的时候,非首屏部分不需要置灰,像是如下动图所示,该怎么办呢?
看看示意:
这种只置灰首屏的诉求该如何实现呢? 使用 backdrop-filter 实现滤镜遮罩
这里,我们可以借助 backdrop-filter 实现一种遮罩滤镜效果。filterVSbackdrop-filter
在 CSS 中,有两个和滤镜相关的属性 -- filter 和 backdrop-filter 。
backdrop-filter[1] 是更为新的规范推出的新属性,可以点击查看 Filter Effects Module Level 2。filter :该属性将模糊或颜色偏移等图形效果应用于元素。backdrop-filter :该属性可以让你为一个元素后面区域添加图形效果(如模糊或颜色偏移)。它适用于元素背后的所有元素,为了看到效果,必须使元素或其背景至少部分透明。
注意两者之间的差异, filter 是作用于元素本身,而 backdrop-filter 是作用于元素背后的区域所覆盖的所有元素。而它们所支持的滤镜种类是一模一样的。
backdrop-filter 最为常见的使用方式是用其实现毛玻璃效果。
看这样一段代码: Normal filter backdrop-filter .bg { background: url(image.png); & > p { width: 300px; height: 200px; background: rgba(255, 255, 255, .7); } .g-filter { filter: blur(6px); } .g-backdrop-filter { backdrop-filter: blur(6px); } }
CodePen Demo -- filter 与 backdrop-filter 对比[2]
filter 和 backdrop-filter 使用上最明显的差异在于:filter 作用于当前元素,并且它的后代元素也会继承这个属性backdrop-filter 作用于元素背后的所有元素
仔细区分理解,一个是 当前元素和它的后代元素 ,一个是 元素背后的所有元素 。
理解了这个,就能够明白为什么有了 filter ,还会有 backdrop-filter 。使用 backdrop-filter 实现首屏置灰遮罩
这样,我们可以快速的借助 backdrop-filter 实现首屏的置灰遮罩效果: html { position: relative; width: 100%; height: 100%; overflow: scroll; } html::before { content: ""; position: absolute; inset: 0; backdrop-filter: grayscale(95%); z-index: 10; }
仅仅只是这样而已,我们就在整个页面上方叠加了一层滤镜蒙版,实现了只对首屏页面的置灰:
借助 pointer-events: none 保证页面交互
当然,这里有个很严重的问题,我们的页面是存在大量交互效果的,如果叠加了一层遮罩效果在其上,那这层遮罩下方的所有交互事件都将失效,譬如 hover、click 等。
那该如何解决呢?这个也好办,我们可以通过给这层遮罩添加上 pointer-events: none ,让这层遮罩不阻挡事件的点击交互。
代码如下: html::before { content: ""; position: absolute; inset: 0; backdrop-filter: grayscale(95%); z-index: 10; + pointer-events: none; }
CodePen Demo -- Gray Website by backdrop-filter[3]
当然,有同学又会开始质疑了, backdrop-filter 虽好,但是你自己瞅瞅它的兼容性,很多旧版 firefox 不支持啊大哥。我们那么多火狐的用户咋办?
截至至 2022/12/01,Firefox 的最新版本为 109,但是在 Firefox 103 之前,都是不支持 backdrop-filter 的。
别急,除了 filter 和 backdrop-filter ,我们还有方式能够实现网站的置灰。借助混合模式实现网站置灰
除了 filter 和 backdrop-filter 外,CSS 中另外一个能对颜色进行一些干预及操作的属性就是 mix-blend-mode 和 background-blend-mode 了,翻译过来就是混合模式。
如果你对混合模式还比较陌生,可以看看我的这 几篇文章[4] :不可思议的颜色混合模式 mix-blend-mode[5] 不可思议的混合模式 background-blend-mode[6] CSS 奇技淫巧 | 妙用混合模式实现文字镂空波浪效果[7] 利用混合模式,让文字智能适配背景颜色[8]
这里, backdrop-filter 的替代方案是使用 mix-blend-mode 。
看看代码: html { position: relative; width: 100%; height: 100%; overflow: scroll; background: #fff; } html::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 1); mix-blend-mode: color; pointer-events: none; z-index: 10; }
我们还是叠加了一层额外的元素在整个页面的首屏,并且把它的背景色设置成了黑色 background: rgba(0, 0, 0, 1) ,正常而言,我们的网站应该是一片黑色的。
但是,神奇的地方在于,通过混合模式的叠加,也能够实现网站元素的置灰。我们来看看效果:
经过实测: { mix-blend-mode: hue; // 色相 mix-blend-mode: saturation; // 饱和度 mix-blend-mode: color; // 颜色 }
上述 3 个混合模式,叠加黑色背景,都是可以实现内容的置灰的。
值得注意的是,上述方法,我们需要给 HTML 设置一个白色的背景色,同时,不要忘记了给遮罩层添加一个 pointer-events: none 。
CodePen Demo -- Gray Website By MixBlendMode[9] 总结一下
这里,再简单总结一下。 如果你需要全站置灰,使用 CSS 的 filter: grayscale() 对于一些低版本的浏览器,使用 SVG 滤镜通过 filter 引入对于仅仅需要首屏置灰的,可以使用 backdrop-filter: grayscale() 配合 pointer-events: none 对于需要更好兼容性的,使用混合模式的 mix-blend-mode: hue 、mix-blend-mode: saturation 、mix-blend-mode: color 也都是非常好的方式
有个小技巧,在 CSS 的世界中,但凡和颜色打交道的事情,你都应该想起 filter 、backdrop-filter 和 mix-blend-mode 。最后
好了,本文到此结束,希望本文对你有所帮助 :)
如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。 参考资料
[1]
backdrop-filter: https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty
[2]
CodePen Demo -- filter 与 backdrop-filter 对比: https://codepen.io/Chokcoco/pen/WNjebrr
[3]
CodePen Demo -- Gray Website by backdrop-filter: https://codepen.io/Chokcoco/pen/zYaJQJm
[4]
几篇文章: https://github.com/chokcoco/iCSS/issues?q=is%3Aopen+label%3A%E6%B7%B7%E5%90%88%E6%A8%A1%E5%BC%8F
[5]
不可思议的颜色混合模式 mix-blend-mode: https://github.com/chokcoco/iCSS/issues/16
[6]
不可思议的混合模式 background-blend-mode: https://github.com/chokcoco/iCSS/issues/31
[7]
CSS 奇技淫巧 | 妙用混合模式实现文字镂空波浪效果: https://github.com/chokcoco/iCSS/issues/140
[8]
利用混合模式,让文字智能适配背景颜色: https://github.com/chokcoco/iCSS/issues/169
[9]
CodePen Demo -- Gray Website By MixBlendMode: https://codepen.io/Chokcoco/pen/poKOmxp
[10]
Github -- iCSS: https://github.com/chokcoco/iCSS
作者:SbCo
来源:微信公众号:iCSS前端趣闻
出处:https://mp.weixin.qq.com/s/pwXyZ-MAemaBhlPC6KM0hA
留德期间,陈寅恪大吃腰花,原因竟是,腰花最便宜?1937年感恩节,林语堂受邀前往美国朋友家中聚餐。当晚主菜火鸡刚上桌,他就不顾斯文地用叉子乱戳乱掏找鸡腰,朋友太太没好气地说鸡是没有腰的!林语堂立即还嘴,怎么没有,在中国蘑菇炒鸡腰
人民网评从八个方面明确未来五年发展的主要目标从二二年到二三五年基本实现社会主义现代化从二三五年到本世纪中叶把我国建成富强民主文明和谐美丽的社会主义现代化强国。党的二十大报告明确了全面建成社会主义现代化强国的两步走战略安排,确
从餐厅服务员到一等功臣,如今他又有了新身份1996年出生的刘付鸿锋曾是一名餐厅的服务员在他18岁时做了一个影响他一生的决定参军入伍从战士到干部从特战队员到少尉排长一起看看他的成长之路刘付鸿锋广东化州人他5岁时被送到外婆家成
入村,一脚便是跨越千年这么近那么美周末到河北奋进新时代魅力张家口我爱石家庄蓝天白云大美秦皇岛奋进新时代这是一个很快的时代,交通很快,通讯很快,车马邮已经像是上个时代的意象。幸而总有一些角落,依然镌刻着从
什么是三防笔记本三防笔记本有什么特别国产加固笔记本推荐什么是三防笔记本三防笔记本有什么特别国产加固笔记本推荐视频加载中三防笔记本三防笔记本三防笔记本三防笔记本三防笔记本三防笔记本三防笔记本三防笔记本三防笔记本三防笔记本三防笔记本三防笔
肌营养不良冬季饮食注意一注意保持良好的饮食规律平时多吃一些多吃高蛋白高维生素富含钙锌等营养成分的食物,能够提高身体免疫力,从而改善身体亚健康症状,其中比较常见的食品包括瘦肉蛋鱼虾鸡肉肝脏排骨豆制品等食品
我的苦难,我的大学读书笔记第章成是痛苦的,生活并未停止成长一句1。我深深地爱着亲那变得丑陋的容颜2。我的世界没有丁点的快乐,像没有花朵的冬天的原野样凄凉。3。我的童年活孤独灰暗。那时天总是很蓝,路总是很,忧
从红极一时到销声匿迹,丫蛋的消失怨不得任何人2009年,丫蛋作为赵本山的第一位女弟子,跟随师父登上了做梦都没有想过的央视春晚的舞台。凭借一句我感谢你八辈祖宗,以及一首开口脆的青藏高原一夜爆红。一瞬间,曾经瞧不起嫌弃她的人纷纷
雷军说站在风口上,猪都能飞起来小米的雷军曾说,站在风口上猪也能飞起来。确实!天时地利人和,时机都是缺一不可!在一个新事物出现,抓住机会的人就是运气加持的人。但是在这个时候,更加需要结合自身过硬的本事。在一个新事
心态稳了,工作就顺了俞敏洪曾说心态正确了,事情才能做正确,生活才能向好的方向改变。诚然,每个人遇事的心态,都各不相同。有人在工作里遇到问题,怨天尤人,深陷负面情绪,最终在日复一日的消耗中,失去了竞争力
到底陪伴重要还是工作重要经鉴定不是亲妈捂脸捂脸捂脸捂脸我已经不能从人群中一眼认出你了!!!你从蹒跚学步到现在已经比我还高,中间的成长我已经缺席了很多!小伙子没有我们的陪伴,你真的还算优秀强强强争取你后面两
世乒赛团体赛中国女团30胜马来西亚四连胜晋级淘汰赛来源央视体育2022年世乒赛团体赛正在成都进行,中国女团今晚对阵马来西亚女团。代表中国队出战的孙颖莎王曼昱王艺迪均发挥出色,各自以30完胜对手。中国女团以30战胜马来西亚女团,小组
02!大连队主场两连败,3大外援低迷裁判选择性失明,球迷不解北京时间2022年10月4日晚,中超联赛第21轮的比赛继续进行,大连队主场迎战天津津门虎。上半场第13分钟,天津津门虎队的王秋明攻入进球。外援曼巴发挥失常,下半场遭换下。第80分钟
残阵篮网不敌76人,仅单节输了16分,西蒙斯复出今日NBA季前赛布鲁克林篮网主场对阵费城76人的比赛已经结束。全场战罢,篮网以108127不敌76人。本场比赛中,篮网球员凯文杜兰特和出战18分钟,8投4中,其中三分球4投1中,罚
网友为郭艾伦与李梦牵线搭桥,想让他们在一起网友想为都是单身都是国家篮球队运动员都是辽宁老乡的郭艾伦和李梦牵线搭桥,有些网友甚至为郭艾伦和李梦以后的孩子篮球基因都产生无限遐想!可是网友的热心肠被郭艾伦婉拒了。郭艾伦李梦中国女
扔掉你的马丁靴吧!今年流行这3种靴子,158女生穿更洋气显高说实话,到了秋天的女孩们基本上就会给自己安排上一些简单的风衣,西装,卫衣等服饰,除了这些简约的上衣,大家也会尝试各种时髦的靴子,靴子是秋季必备的单品,搭配前面这些基础款的上衣也很容
冷知识唐装并不是唐朝的服装G20峰会有一个传统,在哪个国家举行,各国领导人都会穿上该国特色的服装照一张全家福,这是G20峰会的一大亮点。杭州举办G20峰会时,普京奥巴马等领导人都脱下死板的西装,穿上色彩明艳
成分党必知姜黄素想要有效护肤,当然不可避免地要具有一定的成分观念,不单单看产品的宣传,更要看产品的成分,今天我们来唠一下护肤品成分之姜黄素。姜黄素是什么姜黄素是一种相对分子质量小的多酚类物质,是姜
爱屋及乌!大S秀纹身戒指,直言很害怕大家不接受,觉得我疯了近期,大S具俊晔热点不断。前不久,小S更是一句一个姐夫各种夸具俊晔,甚至连具俊晔抱大S上厕所都说了出来。言论一出,也是引发了热议。很多网友也是吐槽小S口不择言,完全信口开河不考虑后
奥黛丽赫本颜值有争议却不影响她让全世界念念不忘奥黛丽赫本1929年出生于比利时布鲁塞尔,是一名英国女演员,大家熟知的罗马假日蒂芙尼的早餐龙凤配窈窕淑女等都是她的经典作品,被美国电影学院评为美国电影界第三大女演员,她在电影里的造
人民日报金句系列(186)1。对历史最好的致敬,是书写新的历史对未来最好的把握,就是开创更美好的未来。2。从历史中走来,向着未来奔涌。3。肩负光荣使命,勇担历史重任。4。投身新时代,立志千秋伟业。5。奋进新
独处一隅一个人待在一隅或闲坐沙发或倚窗而立或哼着歌或吹着笛或做着家务或一个人下棋或仰天长啸或低头叹息或听窗外鸟鸣或赏万籁俱寂或想着心事或不去想任何事总之,一个人抱着自己听时光的足音拖沓出痕