今天大家在浏览B站,腾讯视频,等网站时,有没有发现一个现象,网站变成灰色的了。

是不是跟平常不一样了呢,这是因为今天(2020.4.4)是全国哀悼日,

所以网站这些就变成灰色的呢。

我去看了一下腾讯的做法,腾讯是将所有的图片换成了灰色的。

我觉得的缺点是:如果网站非要展示大量图片,不可能每一张图,

都替换成灰色的图片吧!这样可能要把美工累成啥XX

那么B站是如何做的呢?

B站是通过,css3的属性去控制的,



首先找到 html. 在 B 站的 html 中有一个 gray 这一个类。

然后全局搜索。gray.

然后你会发现有这么一段代码。

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

如果将这一段代码去除,网站将会恢复回来的彩色。

那么能不能用css属性将背景色图片这些变成灰色的呢。

答案是可以的哈。

使用filter 对布局的影响。

在正常的情况下 B 站这个导航栏滑到下面之后是 fixed 在页面的顶部的

但假如你把这段 css 加到了 body 上会发生下面这种情况:(添加到 body 会出现 添加到 html 上就不会出现)

你可以发现它不再固定在页面的顶部了,而是超出去了屏幕外面,

屏幕左下角的小电视人也跑到了页面上半部分去,为什么会发生这样的情况呢?

对于指定了 filter 样式且值不为 none 时,被应用该样式的元素其子元素中如果有 position 为 absolute 或 fixed 的元素,

会为这些元素创建一个新的容器,使得这些绝对或固定定位的元素其定位的基准相对于这个新创建的容器。

我们可以联想出 fixed 是相对于 html 根容器来定位的,如果在 body 上设置了 filter 则会创建一个新的定位基准,

而页面滚动时将 body 滚动出了屏幕外,则 body 内所有子孙元素的 fixed 将产生不符合预期的效果。

(上面这一点对布局的影响是 参考:https://juejin.im/post/5e86e221e51d4546ce27b99c)

 <ul class="demo">
<li>11</li>
<li>11</li>
<li>22</li>
<li>33</li>
<li>44</li>
</ul>
<img src="../dm.jpg" class="img-size">
<style>
.demo {
display: flex;
width: 300px;
height: 40px;
line-height: 40px;
list-style: none;
text-align: center;
}
.demo li {
width: 50px;
color: antiquewhite;
background: pink;
padding-left: 0;
} .img-size {
width: 100px;
height: 100px;
background-size: 100%;
}
</style>

如何变成灰色的呢?

有这几种方式,都是利用css3de filter这个滤镜属性。

(1)
html {
-webkit-filter: grayscale(100%);
filter: progid:DXImageTransform.Microsoft.BasicImage(graysale=1);
} (2)
html {
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter:
grayscale(100%);
-o-filter: grayscale(100%);
filter: url("data:image/svg+xml;utf8,#grayscale");
filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
-webkit-filter: grayscale(1);
}

css3只需一招,将网站变成灰色的的更多相关文章

  1. django查询中模糊的知识点,filter(blog=blog),filter(username=username).first()--这两者只需一招让你分清QuerySet对象,和用户字典对象

    只需一招让你分清QuerySet对象,和用户字典对象 article_list = models.Article.objects.filter(blog=blog) user_obj = models ...

  2. 「MacOS」将网站转换为应用程序,只需一个Unite

    unite mac有着非常强大的功能,能够轻松的将网站转换为macOS上的应用程序,除了现代化的网页浏览功能以外,Unite for Mac下载还包括特定于macOS的功能,通知,TouchBar支持 ...

  3. 在PHP中使用CURL,“撩”服务器只需几行——php curl详细解析和常见大坑

    在PHP中使用CURL,"撩"服务器只需几行--php curl详细解析和常见大坑 七夕啦,作为开发,妹子没得撩就"撩"下服务器吧,妹子有得撩的同学那就左拥妹子 ...

  4. 在PHP中使用CURL,“撩”服务器只需几行

    在PHP中使用CURL,“撩”服务器只需几行https://segmentfault.com/a/1190000006220620 七夕啦,作为开发,妹子没得撩就“撩”下服务器吧,妹子有得撩的同学那就 ...

  5. 只需十四步:从零开始掌握 Python 机器学习(附资源)

    分享一篇来自机器之心的文章.关于机器学习的起步,讲的还是很清楚的.原文链接在:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找 ...

  6. Github 大牛封装 Python 代码,实现自动发送邮件只需三行代码

    *注意:全文代码可左右滑动观看 在运维开发中,使用 Python 发送邮件是一个非常常见的应用场景.今天一起来探讨一下,GitHub 的大牛门是如何使用 Python 封装发送邮件代码的. 一般发邮件 ...

  7. 一款非常好用的万能本地离线激活工具,支持Office2016、Office2015、Win7、Win8/8.1/10、Win2008/2012/R2系统,全自动安装且无需联网状态即可全部激活,它由国外网友heldigard制作,小巧、简单,只需运行而不用去管它自动激活,能自动激活为180天无限循环,欢迎大家下载使用

    office2016激活工具(KMS)是一款非常好用的万能本地离线激活工具,支持Office2016.Office2015.Win7.Win8/8.1/10.Win2008/2012/R2系统,全自动 ...

  8. 只需十四步:从零开始掌握Python机器学习(附资源)

    转载:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找到大量的资源.你现在也在考虑从 Python 入门机器学习吗?本教程或许 ...

  9. 中小企业自建云WAF有多难?只需20分钟!而且:全程免费!

    以往,运营型的web为了安全目的,才使用WAF进行安全防护. 而现如今,WAF对企业web来说,已然成了刚需.为何?等保.网络安全法的硬性要求! 当然,这样要求显然是对的:没有网络安全,就没有国家安全 ...

  10. 如果需要将UIView的4个角全部都为圆角,做法相当简单,只需设置其Layer的cornerRadius属性即可

    如果需要将UIView的4个角全部都为圆角,做法相当简单,只需设置其Layer的cornerRadius属性即可(项目需要使用QuartzCore框架).而若要指定某几个角(小于4)为圆角而别的不变时 ...

随机推荐

  1. Git 工具 - 子模块: submodule与subtree的使用

    git日常使用中,基本都是一个项目一个Git仓库的形式,那么当我们的代码中碰到了业务级别的需要复用的代码,我们一般怎么做呢? 比如:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你独 ...

  2. chrome对页面重绘和回流以及优化进行优化

    页面的绘制时间(paint time)是每一个前端开发都需要关注的的重要指标,它决定了你的页面流畅程度.而如何去观察页面的绘制时间,找到性能瓶颈,可以借助Chrome的开发者工具. 回流与重绘 1. ...

  3. pip升级和卸载安装的第三方库

    pip install --upgrade 第三方库名 pip uninstall 第三方库名

  4. 一文读懂火山引擎数智平台 VeDI 新品——管理驾驶舱 Plus

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 4 月 18 日,2023 春季火山引擎 FORCE 原动力大会在上海举行,火山引擎发布数智平台(VeDI)新品- ...

  5. PPT 渐变入门

    光圈 线性渐变 路径渐变 案例 一个圆 渐变 二个圆 渐变叠加 加阴影 阴影 金属字体

  6. PPT 合并形状

    形状格式 -> 插入形状 -> 合并形状 选中的元素,就是要保留的元素. 可以到 https://www.iconfont.cn/ 下载SVG格式插入 PPT中进行使用 合并开状的应用 文 ...

  7. flask自定义参数校验、序列化和反序列化

    项目总体结构 我的工厂函数factory.py from settings import setting from flask import Flask from models.models impo ...

  8. 【Flask】cbv源码分析 flask模板使用 flask请求与响应 session及源码分析 闪现flash 请求扩展

    目录 上节回顾 今日内容 1 cbv分析 1.1 源码分析 2 模板 2.1 app.py 2.2 index.html 3 请求与响应 4 session及源码分析 4.1 session的使用 4 ...

  9. 命令行状态下切换盘符 cd 跨盘

    这个经常忘记,在这记下来 cd /d d: 就是加上/d参数

  10. 数字孪生 3D 风电场,智慧风电之海上风电

    前言 截止 2021 年,全球已有 127 个国家做出了"碳中和"的承诺,能源低碳转型和实现碳中和已经成为全球共同的战略目标.根据权威机构预测,到 2050 年,可再生能源发电将占 ...