网页颜色可以变,致敬抗疫英雄态度不能变(如何使用 CSS3 使网页颜色整体改变)

网页颜色可以变,致敬抗疫英雄态度不能变(如何使用 CSS3 使网页颜色整体变色)

引入篇

2020年4月4日 星期六 清明节
        为表达全国各族人民对抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的深切哀悼,国务院决定,2020年4月4日举行全国性哀悼活动。在此期间,全国和驻外领事馆下半旗志哀,全国停止公共娱乐活动。4月4日10时起,全国人民默哀3分钟,汽车、火车、舰船鸣笛,防空警报鸣响。与此同时,大家可以发现所有的网页全部变成了灰色。那么这是怎么来实现的呢?接下来我将带大家get这个效果。

技术篇

                              以CSDN网站为例
在这里插入图片描述
        2020年4月4日我们看到网页全部内容都变成了灰色,有人认为所有的内容的统一更换了CSS样式,图片也全换成了黑白的图片,实则不然,这样做的人工成本太大了,整个网站中有很多个网页,每个网页有很多张图片,而且万一某一个部分的内容前端工程师们忘记添加灰色样式,可能会使整个网页看起啦很突兀。接下来我们来看一下究竟是如何实现的。
        首先,打开浏览器,选择一个网站打开,(以下以CSDN为例),在CSDN网站上鼠标点击右键选择 检查元素 可以查找到该网页的源代码,互联网大厂的编写代码一般都是结构样式相分离,也就是HTML写结构,css写样式,那么我们应该看一下 style部分中关于颜色方面多出了些什么东西。
        从下图可以看到:
在这里插入图片描述
仅仅一行代码使整个网页全部变成了灰色。

html{-webkit-filter: grayscale(100%);}

那么这行代码是什么意思呢?

  • html{} 代表了选择整个页面,在{}内写的代码可以使整个页码的样式全部应用。例如: html{color:blue}可以让整个页面中的字体颜色全都变成蓝色。
  • webkit是主流浏览器其中一种浏览器内核,主要应用于Mozilla Firefox、Safari、GoogleChrome 等这类浏览器,考虑浏览器兼容性的问题,故加上此使内容可以在Mozilla Firefox、Safari、GoogleChrome 等这类浏览器中显示。
  • filter:grayscale(100%) 是什么意思呢,这是本篇文章重点讲述的内容

filter(滤镜)[部分内容引自于菜鸟教程]

filterCSS3 中的一种样式
        CSS属性将模糊或颜色偏移等图形效果应用于元素。滤镜用于通常用于调整图像、背景、边框的渲染。它类似于修图软件中的滤镜,修图软件中的滤镜可以改变图片的整体效果,修改过图片的你们可能就明白了滤镜的效果。CSS3filter可以使整个网页的样式效果改变。
        浏览器支持
在这里插入图片描述
注:旧版 Internet Explorer 浏览器(4.0 to 8.0) 支持的非标准 “filter” 属性已被废弃。 IE8 及更低版本浏览器通常使用 opacity 属性。
        网页中使用的grayscale(%) : 将图像转换为灰度图像。值定义转换的比例。值为100%则完全转为灰度图像,值为0%图像无变化。值在0%到100%之间,则是效果的线性乘子。若未设置,值默认是0;
那么将网页中的

html{-webkit-filter: grayscale(100%);}

        去掉可以在你的电脑上看到网页日常的模样(刷新后会恢复到网站原有的灰色状态)。如下图:
在这里插入图片描述
filter的其他功能(以下写法为了简易忽略了浏览器兼容性,使用任何css3记得考虑浏览器兼容性即在filter前写上支持的主流浏览器内核哦!!):

  • blur(px) :给图像设置高斯模糊。"radius"一值设定高斯函数的标准差,或者是屏幕上以多少像素融在一起, 所以值越大越模糊;例如:img{filter:blur(2px);} 图片使用高斯模糊效果。
  • brightness(%) :给图片应用一种线性乘法,使其看起来更亮或更暗。如果值是0%,图像会全黑。值是100%,则图像无变化。其他的值对应线性乘数效果。值超过100%也是可以的,图像会比原来更亮。如果没有设定值,默认是1。例如:img{filter:brightnes(200%);}使图片变亮
  • drop-shadow(h-shadow v-shadow blur spread color) :给图像设置一个阴影效果。阴影是合成在图像下面,可以有模糊度的,可以以特定颜色画出的遮罩图的偏移版本。 函数接受(在CSS3背景中定义)类型的值,除了"inset"关键字是不允许的。该函数与已有的box-shadow box-shadow属性很相似;不同之处在于,通过滤镜,一些浏览器为了更好的性能会提供硬件加速。参数如下:
    (必须)
    这是设置阴影偏移量的两个 值. 设定水平方向距离. 负值会使阴影出现在元素左边. 设定垂直距离.负值会使阴影出现在元素上方。查看可能的单位.
    如果两个值都是0, 则阴影出现在元素正后面 (如果设置了 and/or ,会有模糊效果).
    (可选)
    这是第三个code>值. 值越大,越模糊,则阴影会变得更大更淡.不允许负值 若未设定,默认是0 (则阴影的边界很锐利).
    (可选)
    这是第四个 值. 正值会使阴影扩张和变大,负值会是阴影缩小.若未设定,默认是0 (阴影会与元素一样大小).
    注意: Webkit, 以及一些其他浏览器 不支持第四个长度,如果加了也不会渲染。
    (可选)
    查看 该值可能的关键字和标记。若未设定,颜色值基于浏览器。在Gecko (Firefox), Presto (Opera)和Trident (Internet Explorer)中, 会应用colorcolor属性的值。另外, 如果颜色值省略,WebKit中阴影是透明的。例如: img { filter: drop-shadow(8px 8px 10px red);; }给图像设置一个阴影效果。
            了解更多关于 filter 的功能 ,读者可以在菜鸟教程中查看。
    链接:https://www.runoob.com/cssref/css3-pr-filter.html

结语

        本文带大家简单了解了观察到的网页整体变成灰色是如何在技术上实现的,也带大家简要了解 filter及其它的其他的几个功能。
        最后,在此向所有奋战在抗击疫情一线的人们致敬!向抗击疫情斗争牺牲的烈士和同胞表示深切的哀悼!世界并不是一切安好,只是有人替你负重前行。
在这里插入图片描述
(初次写技术类博客,如有不当还请大佬们多多指教和谅解。)

发布了1 篇原创文章 · 获赞 2 · 访问量 242

猜你喜欢

转载自blog.csdn.net/tjlcy2019/article/details/105314390