如何让网站页面变灰?几行代码轻松搞定哀悼模式。

185 8

今天搞个小玩意儿,就是把整个网页弄成灰色的。有时候,比如一些特殊的日子,网站需要表达点肃穆的气氛,整体变灰是个常见的做法。我之前没正经弄过,这回就实践一把。

摸索过程

一开始我想,这玩意儿肯定是用样式(CSS)来控制的。总不能让我一张张图片去改成灰色的,那得累死。内容、按钮啥的也得变灰才行。

如何让网站页面变灰?几行代码轻松搞定哀悼模式。

我就去网上随便扒拉一下,看看大家都是怎么搞的。搜出来不少方法。

  • 有说直接在 `body` 标签上加个 `style="filter:gray"` 的,感觉有点老旧,好像是以前IE浏览器用的?试下,效果不太对劲,或者说在现在的浏览器上不咋好使。
  • 还有看到更靠谱点的,用 CSS 的 `filter` 属性。这个看起来现代多。

动手实践

我觉得 CSS `filter` 这个路子靠谱。那就试试呗。

最简单的想法,就是给整个页面套上这个效果。哪个标签能代表整个页面?`html` 标签或者 `body` 标签都行。我选 `html` 标签,感觉更彻底点,覆盖整个文档。

然后就在我的 CSS 文件里加上这么一句:

html { filter: grayscale(100%); }

这个 `grayscale(100%)` 的意思就是“灰度化”,括号里的 `100%` 就是完全变成灰色。如果你想弄个半灰不彩的效果,可以试试 `50%` 之类的。

为保险起见,有时候需要考虑一些老旧浏览器或者特定内核的兼容性,虽然现在可能用处不大,但加上总没坏处。我又补充一行带前缀的:

html { -webkit-filter: grayscale(100%); / 兼容老webkit内核 / filter: grayscale(100%); }

把这几行代码加到我的全局 CSS 文件里,保存。

看效果

回到网页,刷新一下。嚯,成!整个页面,从图片到文字,从背景到按钮,全都变成黑白灰的调调。效果很到位,正是我想要的。

我还看到有人说用 JavaScript 也能实现,大概就是获取 `*` (也就是 `html` 元素),然后用 JS 去设置它的 `*` 属性。代码类似这样:

*.filter = 'grayscale(100%)';

不过我觉得,能用 CSS 简单搞定的事儿,就没必要上 JS 。纯展示性的效果,CSS 最拿手,也更简洁高效。除非你还需要用 JS 去动态控制什么时候变灰、什么时候恢复,那另说。

这回实践挺顺利的,就这么一两行 CSS 代码,轻松搞定页面变灰的需求。记录一下,省得下次又忘。

评论列表
  1. ManyLot 回复
    之前见哀悼模式网站变灰挺好奇,原来几行代码就搞定,这方法实用,我下次试试。
  2. Moon 回复
    之前游戏站变灰我还以为卡了呢,原来几行代码就能搞定哀悼模式,这方法真的超实用,看着变灰页面挺有感觉的。
  3. HereLocation 回复
    之前做网站要搞哀悼模式,试了这招,页面变灰真的简单,几行代码一贴就成,超方便。
  4. StarLight 回复
    之前找哀悼模式代码愁坏我 这篇几行代码真超简单 试了下页面秒变灰超方便 收藏啦以后肯定用得上
  5. Mace 回复
    之前想弄页面变灰哀悼模式,这几行代码真轻松,试了下马上就灰了,方便。
  6. HereLocation 回复
    这方法真不错!我试过,加几行代码页面就变灰,哀悼氛围一下就有了。
  7. Man 回复
    这方法真不错!我试过,几行代码就让页面变灰,哀悼氛围一下就有了。
  8. BackRear 回复
    这方法真不错!之前我也试过,几行代码就让页面变灰,轻松实现哀悼模式,很实用。