如何用一行代码实现网页变灰效果?
今天是 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 的更详细的用法,希望有帮助。
转载于:https://mp.weixin.qq.com/s/ea1clNkL59bBQQYGk6npbQ
如何用一行代码实现网页变灰效果?相关推荐
- 技术大揭秘:百度、淘宝、QQ那些官网如何就只用一行代码实现网页变灰效果?...
转自进击的Coder,作者崔庆才 今天是 2020 年 4 月 4 日,星期六,清明节. 我们的国家经历了非常惨痛的时刻,很多英雄在救助他人的路上倒下,更有很多烈士英雄保卫人民的安危遇难,今天全国下降 ...
- 看看大佬是如何用一行代码实现网页变灰的效果的
4月4日清明节,全国人民一起哀悼新冠肺炎牺牲烈士和逝世同胞. 清明时节雨纷纷,逝去的同胞,英雄一路走好. 网站变灰 昨天我们看到很多网站主页和内容都变成了灰色,包括按钮,图片,是如何做到的呢? 实现方 ...
- 一行代码带你实现网页变灰效果
2020年4月4日,星期六,清明节. 我们的国家经历了非常惨痛的时刻,很多英雄在救助他人的路上倒下,更有很多烈士英雄保卫人民的安危遇难,今天全国下降半旗,北京时间 10 点全国默哀三分钟,来致敬英雄 ...
- 清明节,如何用代码让网页变灰
有时候如清明节时很多网站的全站的内容都变成灰色了,包括按钮.图片等等 这是怎么做到的呢?有人会以为所有的内容都统一换了一个 CSS 样式,图片也全换成灰色的了,按钮等样式也统一换成了灰色样式. 但这个 ...
- 网页|如何实现网页变灰效果
欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 2020年4月4日,星期六农历三月十二清明节.在以往的这一天或 ...
- 解决或者设置网页变灰-CSS-filter属性-哀悼
网页变灰 网页恢复 CSS filter filter CSS 属性将模糊或颜色偏移等图形效果应用于元素.滤镜通常用于调整图像,背景和边框的渲染. 官方Demo https://developer.m ...
- 网页变灰的方法,适用于IE
在哀悼日的时候如何让网页变灰? 1.适用于谷歌.火狐.360极速模式的代码 html{ filter: grayscale(100%); -webkit-filter: grayscale(100%) ...
- 让整个网站网页变灰的方法
一般在清明节,全国哀悼日,大地震的日子,以及一些影响力很大的伟人逝世或纪念日的时候,身为站长的我们都会让自己的网站的全部网页变成灰色(黑白色),以表示我们对逝者的悼念.那么今天就说说,通过几行简单的代 ...
- 如何用一行代码, 让老板开除你?
专栏 | 九章算法 网址 | www.jiuzhang.com 哈喽,艾薇波地!又到了1024,一年一度的程序员节啦! 今天,程序员们每敲出的一行代码,都隐藏这巨大的威力.比如: 一行代码可以让老板开 ...
最新文章
- TS流 PS流 ES流
- greendao引起的NoClassDefFoundError异常解决
- mac u盘格式化 linux系统文件,Mac上怎么制作Ubuntu的U盘开启盘(装Linux系统)
- 使用Google Cloud Storage托管您的Maven工件
- php mysql while循环,PHP_MySQL教程-第二天while循环与数据库操作第2/2页
- windows下的工具链 树莓派_Windows下交叉编译Qt 5.14.2至树莓派平台 QEMU模拟树莓派...
- 如何获取LanuchImage
- 小心了!一大波存储厂商术语正在靠近
- 从零开始刷Leetcode——数组(746.747)
- Exchange2007获取OWA邮箱容量的代码
- 关于Winform中的用户代理
- HALCON 控制变量没有被初始化_OA大典故障案例摘录【第1397篇】理光2501如何载体初始化 ?...
- 赛马比赛--25匹马5个跑道,怎样选出最快的5匹来
- postgresql 锁_PostgreSQL中的锁:3.其他锁
- Apriori算法作电影推荐
- SecureCRT 命令行备注
- 课程设计 学生选课管理 王杰 孙乾 蔚晓青
- 诺奖得主公司CAR-T细胞疗法临床试验现患者死亡,系今年第6例-1
- c语言指数爆炸月球,指数爆炸:一张纸对折103次后,将填满整个宇宙?
- mysql中 s命令_MySql常用命令总结
热门文章
- 语音怎么转换成文字?分享两种语音转文字的方法
- 未来纳米技术的计算机发展领域,纳米技术飞速发展 未来10年超级计算机只手掌大小...
- 代码随想录算法训练营第二天|LeetCode977.有序数组的平方、LeetCode209.长度最小的子数组、LeetCode59.螺旋矩阵II。
- unravel罗马音
- 嵌入式分享合集140
- magics24安装教程|magics中文版下载
- 新玺配资:能耗双控双刃剑 造纸板块一飞冲天
- c# html文件转换word,html转word解决方法
- HBuilderX开发app实现自动更新版本
- vuex与计算属性详解