清明节网站变灰是如何实现的

清明节网站变灰是如何实现的_第1张图片

为表达全国各族人民对抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的深切哀悼,国务院今天发布公告,决定2020年4月4日举行全国性哀悼活动。在此期间,全国和驻外使领馆下半旗志哀,全国停止公共娱乐活动。4月4日10时起,全国人民默哀3分钟,汽车、火车、舰船鸣笛,防空警报鸣响。

各大网站响应国家号召,将页面色调变为了灰色。作为一个技术仔,特别是前端技术仔必须一探究竟。

取证

清明节网站变灰是如何实现的_第2张图片

图片本身依然是彩色,但呈现是灰色,可判断为渲染导致的。通过审查元素,在当前元素上并没有发现特别的设置;于是一层层向上查找,最终在 html 上发现了 filter

html {
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    /* filter: grayscale(100%); */
    filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
}

结论

filter 将模糊或颜色偏移等图形效果应用于元素。通常用于调整图像,背景和边框的渲染。

CSS标准里包含了一些已实现预定义效果的函数。具体细则大家可查阅 mdn。

其中,grayscale(amount) 对图片进行灰度转换, 它是 filter-function 的子属性.

  • amount:转换值的大小,可以是numberpercentage。 当值为100%时, 灰度最大。 0%时与原图没有区别。 0% 到 100% 之间的值会使灰度线性变化。amount 为空时会自动插入0。

清明节网站变灰是如何实现的_第3张图片

<img style="filter: grayscale(0)" src="./super前端.png">
<img style="filter: grayscale(0.5)" src="./super前端.png">
<img style="filter: grayscale(1)" src="./super前端.png">

百度、头条等网站均采用上述方式!

兼容性

清明节网站变灰是如何实现的_第4张图片

相关地址

  • https://ligang.blog.csdn.net/
  • https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter
  • https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter-function/grayscale

冬将尽,春可期,山河无恙,人间皆安

你可能感兴趣的:(Thinking)