如何在网页置灰的时候,部分元素保持彩色-有意思的面试题

本文探讨了如何在网页全局置灰时,使部分元素保持彩色。尝试了filter重置方法失败后,转向使用backdrop-filter作为遮挡解决方案。通过遍历并标记元素,实现了在保持网页大部分元素灰色的同时,允许特定元素保持原有颜色。同时,文章提到这种方法存在兼容性问题,并提供了应对策略。最后,作者分享了一份前端大厂面试宝典,包含201道面试题和解析。
摘要由CSDN通过智能技术生成

一键变灰

这个大部分同学都写了,直接

html{filter: grayscale(100%);
} 

考虑ie之类的兼容性的话,就直接把兼容性的属性都搞上去

html{-webkit-filter: grayscale(100%);-moz-filter: grayscale(100%);-ms-filter: grayscale(100%);-o-filter: grayscale(100%);filter: grayscale(100%);filter: gray;filter: progid:dximagetransform.microsoft.basicimage(grayscale=1);
} 

如果想控制的更动态一些,可以用js控制html的class来实现这个切换过程

<button class="btn" id="set-gray">置灰</button> 
let style = document.createElement('style')
let graySelector = 'gray-filter'
style.setAttribute('type', 'text/css')
// style.setAttribute('data-vite-dev-id', id)
style.textContent = `.${graySelector}{-webkit-filter: grayscale(100%);-moz-filter: grayscale(100%);-ms-filter: grayscale(100%);-o-filter: grayscale(100%);filter: grayscale(100%);filter: gra
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值