对于南京大屠杀这样需要悼念的日子,一般在全国哀悼日,大地震的日子,清明节,我们都会让自己的网站全站灰色,以表示对逝者的悼念。以及一些影响力很大的伟人逝世或纪念日的时候,身为站长的我们都会让自己的网站的全部网页变成灰色(黑白色),以表示我们对逝者的悼念。很多人也都想把自己的网站弄成全站黑白来表示自己的哀悼之情。还有其他特殊原因(比如汶川大地震)对部分事件表示哀悼,所以需要把整个网站设置为灰色或者黑白方格。那么今天就说说,通过几行简单的代码,来实现这个功能。
下面我就附上开启全站黑白的教程和代码吧,只需要一句 CSS 定义即可,要将整个网站变成灰色调,你不用去一张一张的改图片的色调,只需要在 css 文件的 html 节点上添加下面一条定义。
方法一:
- html {-webkit-filter: grayscale(100%);}
如果你的网站没有引用 css 文件,那么就可以直接引用下面这段 html 代码
- <style type="text/css">html {-webkit-filter: grayscale(100%);}</style>
上面的 CSS 代码可能只对主流浏览器支持,如果你需要支持 QQ 浏览器、360 浏览器、IE 浏览器等等其他浏览器需要使用下面这段:
- <style>
- html {
- -webkit-filter: grayscale(100%);
- -moz-filter: grayscale(100%);
- -ms-filter: grayscale(100%);
- -o-filter: grayscale(100%);
- filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
- _filter:none;
- }
- </style>
将代码放入前即可让对应网页变黑灰色!filter 是滤镜的意思,filter:gray 的意思就是说给页面加上一个灰度的滤镜,所以 html 里面的所有内容都会变成黑白的了。不过这个滤镜对于 chrome 和 safari 浏览器是无效的,所以下面会有一行-webkit-filter: grayscale(100%);这个样式是专属于使用 webkit 内核的浏览器的,意思和 FILTER: gray;差不多,只是写法不同罢了。
方法二:
下面这段代码可以变网页为黑白,将代码加到 CSS 最顶端就可以实现素装,如果网站没有使用 CSS,可以在网页/模板的 HTML 代码
和 之间插入:
- <style>html {filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);-webkit-filter: grayscale(100%);}</style>
有一些站长的网站可能使用这个 css 不能生效,是因为网站没有使用最新的网页标准协议:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
请将网页最头部的替换为以上代码。有一些网站 FLASH 动画的颜色不能被 CSS 滤镜控制,可以在 FLASH 代码的之间插入:
- <param value="false" name="menu"/>
- <param value="opaque" name="wmode"/>
方法三:
但经测试上面单纯 CSS 方法不兼容 IE10、11 浏览器,所以配合 grayscale.js 这个插件,可以完美兼容所有浏览器,这里我制作了个一键变黑白的按钮, 按钮代码用到了 JQ,需引用,可点击下面看效果
- <style>
- /* 特殊日子 全站灰色 */
- .site-gray, .site-gray *{
- filter: gray !important;
- filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
- filter: grayscale(100%);
- -webkit-filter: grayscale(100%);
- -moz-filter: grayscale(100%);
- -ms-filter: grayscale(100%);
- -o-filter: grayscale(100%);
- }
- </style>
- <a href="javascript:;" class="site-gray" data-gray="0">网站变灰</a>
- <!-- 特殊日子IE10及其以上浏览器 全站灰色 -->
- <script src="js/grayscale.js"></script>
- <script>
- var navStr = navigator.userAgent.toLowerCase();
- $(".site-gray").click(function(){
- var gray = $(this).attr("data-gray");
- if( gray == 0 )
- {
- if(navStr.indexOf("msie 10.0")!==-1||navStr.indexOf("rv:11.0")!==-1){ // 判断是IE10或者IE11
- grayscale(document.body);
- grayscale(document.getElementsByTagName("img"));
- }
- $("html").addClass("site-gray");
- $(this).attr("data-gray", 1);
- }
- else
- {
- if(navStr.indexOf("msie 10.0")!==-1||navStr.indexOf("rv:11.0")!==-1){ // 判断是IE10或者IE11
- grayscale.reset(document.body);
- grayscale.reset(document.getElementsByTagName("img"));
- }
- $("html").removeClass("site-gray");
- $(this).attr("data-gray", 0);
- }
- });
- </script>