怎么把网页变成灰色?怎么让头像或某一部分不变灰色?filter/backdrop-filter/mix-blend-mode/svg/grayscale(1)
创始人
2024-05-23 17:41:52
0

在国家公祭日,我们哀悼沉思,势要勿忘国耻振兴中华;在国家重要人物逝世后,举国哀悼;这些时段很多网站都会积极呼应,给与自己的网页设置成灰色;那给网页设置成灰色是经过怎样的设置来实现的呢?

 ​​

有的网站给自己整个页面设置为灰色;有的网站给首屏设置成灰色;有的则是给大多区域设置成灰色,留出某些部分是原色。

1、filter(让整个网页都呈现出灰色效果)

使用filter要注意,当给父级元素设置了灰色效果后,就像给父级加上了一个滤镜,这个元素的子级是不能通过调整子级的filter来摆脱父级滤镜遮盖。

所以给与整个网页呈现灰色,可以直接给html设置

2、使用svg滤镜

SVG 滤镜的存在,让本来就非常强大的 CSS 如虎添翼。具体方案是使用svg的feColorMatrix


3、backdrop-filter

把效果应用在元素后面的区域所覆盖的所有的元素(可能有些绕,可以对比下filter的作用)

filter:把效果应用在该元素身上,其后代元素不能摆脱

拿blur模糊效果来举例看效果(以下分别是正常效果、filter的效果、backdrop-filter的效果) 

看到效果后再回想上面的那句话,backdrop-filter不影响自己这个元素,会把效果放在这个元素下面的区域上。 

这次来个新的,用它来做首屏变灰,下滚的区域正常显示

【注意】backdrop-filter  存在一些兼容性问题,对于火狐 v103 及以下可能不支持 

4、混合 mix-blend-mode

mix-blend-mode是CSS中另一个可以对颜色效果进行干预操作的属性——混合模式,相对backdrop-filter兼容性要好

继续拿首屏置灰来实验,具体实现代码:

【问题】

无论是兼容性好的min-blend-mode还是兼容性欠佳的backdrop-filter,都会有个问题——影响交互,就像有mask隔开一样,我们类似hover这些交互无法实现。(后面说解决办法)

5、除部分元素外,其他的区域置灰

有时候我们想要页面上除去某些地方之外的地方变灰,比如页面变灰但不让头像变灰

我们用filter来实现,就得考虑子级不能摆脱父级的遮罩

所以这个选择器很有意思,需要认真琢磨琢磨

【解释】

拿xb类举例子  :not(:has(.xb)){样式}   所选元素——后代元素中不存在类名为xb的元素

下面两个图中可以看到样式不会加在div.avatar-box身上,而是会加在img.avatar.xb上

因为img.avatar.xb下面没有后代元素了,所以更不用说类名为xb的元素了,所以就得选它

基于上面的选择器,再增加:not(.xb)  即 :not(:has(.xb)):not(.xb){样式}

所选的元素——【后代元素中】类名不包含xb的元素并且本身不是类名为xb的元素(既不包含,也不是)

这样就可以避免 在avatar的父级上添加filter后导致avatar无法摆脱父级效果的问题

从下面两个图中可以看到,样式没有加在div.note-user上,因为这个元素的后代元素中存在类名为xb的元素,但是div.note-txt-box上是有样式的,因为这个元素的后代元素中不存在类名为xb的元素。

所以我们把用于测试的xb去掉,使用avatar类名来排除头像区域的灰色效果

同img.avatar的父级div.avatar-box同级的div.user-nick会有灰色效果,因为它的后代元素中既没有.avatar的元素自己本身也不是.avatar的元素;但div.avatar-box没有灰色效果,因为它的后代元素中存在.avatar的元素,所以不符合:not(:has(.xb)) 条件。

 6、滤镜影响交互问题

上面说到的一个问题——min-blend-mode或backdrop-filter的设置会影响一些交互效果

想要在鼠标hover到♥的时候,让♥转一圈,但实际这颗心没能被我打动

需要 pointer-events 的帮助,让我们的鼠标事件不发生在这个“mask”身上,也就是穿透到下面

pointer-events:none;

相关内容

热门资讯

婚礼回门答谢宴主持词 婚礼回门答谢宴主持词  尊敬的各位领导、各位来宾、朋友们,  大家中午好!  阳光明媚,歌声飞扬,欢...
重阳节精彩致辞 重阳节精彩致辞范文(通用7篇)  在平时的学习、工作或生活中,大家或多或少都用到过致辞吧,致辞受场合...
学校班级家长会主持词 学校班级家长会主持词  主持词要把握好吸引观众、导入主题、创设情境等环节以吸引观众。在如今这个时代,...
体操比赛主持词 关于体操比赛主持词4篇  主持词要根据活动对象的不同去设置不同的主持词。在如今这个中国,主持人在活动...
中学心理剧大赛主持词 中学心理剧大赛主持词  开幕  雪和华:亲爱的各位领导、各位老师、各位同学,大家晚上好!  雪:我是...
《网购奇遇》的经典台词 《网购奇遇》的经典台词  1、生命不息,扰民不止  2、你那个培训班办的,六年就一个学员还是你媳妇 ...
婚礼男方致辞 婚礼男方致辞婚礼男方致辞尊敬的各位来宾:大家好!今天是我与××小姐结婚的大好日子!我感到十分地高兴同...
结婚单位领导致辞 结婚单位领导致辞(通用18篇)  在平时的学习、工作或生活中,要用到致辞的地方还是很多的,致辞具有能...
《天若有情》里的经典台词 《天若有情》里的经典台词  1 如果他们只是单纯的男人和女人,他们能相爱吗?  2 偷东西 是罪恶的...
《黑执事》经典台词 《黑执事》经典台词  1、一旦拒绝了信仰,就不能再踏入神的大门。  2、那是必须的,,不管何时,王只...
风雨哈佛路经典台词 风雨哈佛路经典台词  引导语:《风雨哈佛路》这部影片相信很多人都看过,亦是一部非常好看的影片,那么有...
文艺节目主持词 文艺节目主持词四篇  主持词要把握好吸引观众、导入主题、创设情境等环节以吸引观众。在一步步向前发展的...
幼儿园六一儿童节主持词 幼儿园六一儿童节主持词尊敬的各位来宾、各位朋友大家下午好!沐浴着和风丽日,我们即将迎来花团锦簇、芳香...
教师节表彰大会校长的致辞 教师节表彰大会校长的致辞范文(精选6篇)  在平平淡淡的日常中,要用到致辞的地方还是很多的,致辞讲求...
婚礼开场白主持词 婚礼开场白主持词  利用在中国拥有几千年文化的诗词能够有效提高主持词的感染力。随着社会一步步向前发展...
会主持人开场白台词 会主持人开场白台词2013年会主持人开场白台词    甲:新年的钟声即将敲响,时光的车轮又留下了一道...
领导主持词 领导主持词三篇  主持词已成为各种演出活动和集会中不可或缺的一部分。在现今人们越来越重视活动氛围的社...
升学宴致辞 升学宴致辞(精选15篇)  在现实生活或工作学习中,大家一定都接触过致辞吧,致辞具有“礼仪性”或“仪...
农村白事的主持词开场白 农村白事的主持词开场白(精选10篇)  在发展不断提速的社会中,越来越多的人会用到开场白,好的开场白...
生日主持词的开场白   生日主持词开场白(一)  各位同事和寿星们,各人晚顶好!在这天高气爽、丹桂飘喷鼻的夸姣季候,咱们...