今天是青海玉树地震的全国哀悼日,很多网站都采取了全站或首页变灰(黑白)的方式。
上次哀悼汶川地震的时候,各网站普遍用的是filter方式。即,在网页的head部分或css文件中增加:
html{filter:gray;}
或
html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }
但这种方式有2大弊端。一是只支持IE,不支持firefox等浏览器;二是显示时会慢一些,网页越大,性能下降越大。
昨天,公司官网也要变灰。为此,研究了很长时间 ,也没有找到适用于firefox的变灰方法。只查到http://www.nihilogic.dk/labs/imagefx/有支持各种浏览器的图片变灰程序,但比较复杂,而且对文字、flash等都无效。
今天一早,看了新浪、网易、搜狐、百度、凤凰。各大网站的变灰处理都是支持IE和firefox等各种浏览器的,但支持程度有所不同。
新浪、搜狐、百度在IE下是全灰,但在firefox下只有少量部分(比如大图)是灰的。这是一方面用了filter,另一方面对部分进行了处理,比如制作了黑白版的大图。
网易和凤凰在IE和firefox下效果相同,而且都是绝大部分变灰,只有少部分没有变灰。 说明不是用filter。
网易和凤凰网用了什么技术手段处理的呢?
难道是把全部图(包括广告)都制作了黑白版,(通过css)更改了全网页的颜色控制?还要分析代码。
更新:
分析代码的结果,网站变灰既不是用filter,也不是通过css,而是直接改了图片。
凤凰网在首页放了背景黑白、只保留鲜红国旗的图片,这是任何css或javascript也实现不了的。
通过比较快照中的网页代码,发现搜狐彩色和变灰的图片是放在不同的目录下,直接对比,确认是不同图片。
结论:firefox下,无法通过css或javascript实现网页变灰。