阅读本文大概需要 7 分钟。

今天是 2020 年 4 月 4 日,星期六,清明节。

我们的国家经历了非常惨痛的时刻,很多英雄在救助他人的路上倒下,更有很多烈士英雄保卫人民的安危遇难,今天全国下降半旗,北京时间 10 点全国默哀三分钟,来致敬英雄们。同时今天一切公共娱乐活动也都会停止,包括直播、综艺、影视、游戏等等。

我也在这里也向全国抗击新冠肺炎疫情斗争牺牲的烈士和逝世的同胞表达深切的哀悼,向所有在抗战在疫情前线的工作和医护人员致敬。我们每一个人的平安面前,都是英雄的人墙。

网站变灰

今天大家可以看到很多很多网站包括主页和内容也都已经变成了灰色,比如百度、B 站、爱奇艺、CSDN 等等。

CSDN

爱奇艺

百度

大家可以看到全站的内容都变成灰色了,包括按钮、图片等等。这时候我们可能会好奇这是怎么做到的呢?

有人会以为所有的内容都统一换了一个 CSS 样式,图片也全换成灰色的了,按钮等样式也统一换成了灰色样式。但你想想这个成本也太高了,而且万一某个控件忘记加灰色样式了岂不是太突兀了。

其实,解决方案很简单,只需要几行代码就能搞定了。

实现

我们选择一个网站,比如 B 站吧,打开浏览器开发者工具。

审查一下网页的源代码,我们可以发现在 html 的这个地方多了一个疑似的 class,叫做 gray,gray 中文即灰色。

变灰效果

其 CSS 内容为:

html.gray {-webkit-filter: grayscale(.95);
}

我们将其取消,就能发现网站的颜色就能重新还原回来了。

还原效果

果然是这个样式在起作用,而且是全局的效果,因为它是作用在了 html 这个节点之上的。

另外看看 CSDN,它也是用的这个 CSS 样式,其内容为:

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);
}

这个实现看起来兼容性会更好一些。

因此我们可以确定,通过一个全局的 CSS 样式就能将整个网站变成灰色效果。

分析

那么这里我们就来详细了解一下这究竟是一个什么样的 CSS 样式。

这个样式名叫做 filter,搜下 MDN 的官方介绍,其链接为:https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter。

官方介绍内容如下:

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

CSS 标准里包含了一些已实现预定义效果的函数。你也可以参考一个 SVG 滤镜,通过一个 URL 链接到 SVG 滤镜元素 (SVG filter element[1])。

其实就是一个滤镜的意思。

官方有一个 Demo,可以看下效果,如图所示。

Demo

比如这里通过 filter 样式改变了图片、颜色、模糊、对比度等等信息。

其所有用法示例如下:

/* URL to SVG filter */
filter: url("filters.svg#filter-id");/* <filter-function> values */
filter: blur(5px);
filter: brightness(0.4);
filter: contrast(200%);
filter: drop-shadow(16px 16px 20px blue);
filter: grayscale(50%);
filter: hue-rotate(90deg);
filter: invert(75%);
filter: opacity(25%);
filter: saturate(30%);
filter: sepia(60%);/* Multiple filters */
filter: contrast(175%) brightness(3%);/* Global values */
filter: inherit;
filter: initial;
filter: unset;

各个用法介绍大家可以参考官方的文档说明:https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter

比如这里如果我们可以使用 blur 设置高斯模糊,用法如下:

filter: blur(radius)

给图像设置高斯模糊。radius 一值设定高斯函数的标准差,或者是屏幕上以多少像素融在一起,所以值越大越模糊;如果没有设定值,则默认是 0;这个参数可设置绝对像素值,但不接受百分比值。

可以达成这样的效果:

效果

再说回刚才的灰色图像,这里其实就是设置了 grayscale,其用法如下:

filter: grayscale(percent)

将图像转换为灰度图像。值定义转换的比例。percent 值为 100% 则完全转为灰度图像,值为 0% 图像无变化。值在 0% 到 100% 之间,则是效果的线性乘子。若未设置,值默认是 0。另外除了传递百分比,还可以传递浮点数,效果是一样的。

如:

filter: grayscale(1)
filter: grayscale(100%)

都可以将节点转化为 100% 的灰度模式。

所以一切到这里就清楚了,如果我们想要把全站变成灰色,再考虑到各浏览器兼容写法,可以参考下 CSDN 的写法:

.gray {-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);
}

这样想要变灰的节点只需要加上 gray 这个 class 就好了,比如加到 html 节点上就可以全站变灰了。

最后呢,看一下浏览器对 filter 这个样式的兼容性怎样,如图所示:

兼容性

这里我们看到,这里除了 IE,其他的 PC、手机端的浏览器都支持了,Firefox 的 PC、安卓端还单独对 SVG 图像加了支持,可以放心使用。

总结

本篇文章简单介绍了一下今天观察到的网站变灰的实现,也学习了 filter 的更详细的用法,希望有帮助。

References

[1] SVG filter element: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/filter

好文和朋友一起看~

今天网站都变成灰色了,这其中是怎么实现的?相关推荐

  1. 网站都变成灰色了,它是怎么实现的

    估计大家发现了,今天,各大网站.APP都变灰了,原因想必大家都知道了. 粉丝群里有人在问,这是如何做到的? 我本来想写一篇文章来聊聊,没想到之前已经有一位大佬写过了,而且写的还不错,就不费工夫了,分享 ...

  2. 网站都变成灰色了,这其中代码是怎么实现的?(发现文章,记录保存方便查看)

    今天是 2020 年 4 月 4 日,星期六,清明节. 我们的国家经历了非常惨痛的时刻,很多英雄在救助他人的路上倒下,更有很多烈士英雄保卫人民的安危遇难,今天全国下降半旗,北京时间 10 点全国默哀三 ...

  3. 网站都变成灰色了,怎么实现的?

    有些时候我们需要把网站页面变成黑白色或灰色,特别是对于一些需要悼念的日子,以及一些影响力很大的伟人逝世或纪念日的时候,都会让网站的全部网页变成灰色(黑白色),以表示我们对逝者或者英雄的缅怀和悼念. 当 ...

  4. 网站都变成灰色,几行代码搞定!

    当大家看到全站的内容都变成了灰色,包括按钮.图片等等.这时候我们可能会好奇这是怎么做到的呢? 有人会以为所有的内容都统一换了一个 CSS 样式,图片也全换成灰色的了,按钮等样式也统一换成了灰色样式.但 ...

  5. 网站都变成灰色了,它是怎么实现的?

    大家好,我是二哥呀. 想必大家都感受到了,很多网站.APP 在昨天都变灰了. 先来感受一下变灰后的效果. 这种灰色的效果怎么实现的呢?如何做到图片.文字.按钮都变灰的效果呢? 方案 1,换一套灰色的 ...

  6. 网站都变成灰色了,如何实现的呢?

    当大家看到全站的内容都变成了灰色,包括按钮.图片等等.这时候我们可能会好奇这是怎么做到的呢? 有人会以为所有的内容都统一换了一个 CSS 样式,图片也全换成灰色的了,按钮等样式也统一换成了灰色样式.但 ...

  7. 网站都变成灰色的了,代码是怎么实现的呢?

    今天来聊一聊页面的滤镜,或者说换肤更合适些.根据技术栈不同,页面换肤可以分为 web 端和 app 端,因此本文通过以下两部分介绍 PC 端 APP 端 一.PC 端 有关 PC 端的一键换肤,这个操 ...

  8. 今天全网的网站都变成了灰色了,这其中是如何实现的呢?

    今天随手打开手机或者是打开网站,会发现百度.淘宝.CSDN.今日头条等等都变成了灰色. 网站都变成了这样的灰色的,无论是按钮.图片.或者亦或者是flash动画,都成了灰色的.这个时候,我们会特别好奇, ...

  9. 清明节网站都变灰了,你知道是怎么做的么?

    一般遇到清明节这种,各种APP,网站,都会变灰.比如 可以看到,这些网站的全站内容都变成灰色的了,包括按钮.图片.文字等信息. 不知道大家有没有对他们是如何变灰的产生问号,反正我是产生了. 我第一个反 ...

最新文章

  1. Python入门系列之字符编码
  2. 记录自定义的代码片段位置
  3. 将mysql的数据库导入到linux_linux 操作之一 如何在linux将本地数据*.sql文件导入到linux 云服务器上的mysql数据库...
  4. python如何记录运行时间_Python如何测量脚本运行时间
  5. onlyoffice采坑笔记
  6. 软件质量保证计划_CMMI V2.0 精讲之“过程质量保证”
  7. linux下编译webkit,ubuntu下编译webkit
  8. Keil5下载安装教程并完成注册(配图操作)
  9. 揭秘防出轨软件 黑市卖到上万 安装容易卸载难
  10. Kindle Touch 越狱
  11. (matlab代码)绘制地震记录的F-K谱
  12. 多宽带联网(二) OpenWrt中利用MWAN3负载均衡实现带宽叠加
  13. 西门子实数转整数_西门子PLC字整数与双字整数之间的转换、双整数与实数之间的转换...
  14. 也说类别Category
  15. CentOS 7 网络配置
  16. 关于视频录制动态贴纸的问题
  17. cassandra install troubleshooting
  18. 疫情开发,软件测试行情趋势是怎么样的?
  19. 教你用Python写界面
  20. html卡死手机,手机页面加载地图,双手操作放大,APP卡死

热门文章

  1. 编程算法 - 切割排序 代码(C)
  2. Ruby:字符集和编码学习总结
  3. 【MFC】MFC中调用系统软键盘的几种方法
  4. sql语句查询结果合并union 和union all用法
  5. html 文本横竖切换,(横竖屏切换/强制横屏)CSS3 transform 怎样才能中心旋转?
  6. 禁用内置键盘_如何禁用Windows 10的所有内置广告
  7. 学习韩立刚老师IT运维课程,成为韩立刚老师正式学生,在全国范围为你就近推荐工作。...
  8. Mybatis之设计模式之装饰者模式
  9. 旧金山参议员提议发布“封杀令”,理由是马路不为机器人所服务
  10. CentOS7安装EPEL源