IE6当然是不支持透明背景的PNG图片,虽然网上有不少方法来解决这个问题,下载一些JS什么的,但我不喜欢另外增加JS,所以想使用GIF来兼容IE6,虽然IE6的市场占有率已经急剧下降,但它还是死守不退。不过用GIF有个麻烦,GIF的透明背景虽然IE6可以支持,但GIF只有256色,颜色不如PNG丰富,有的图标看上去就显得不是那么舒服。而强行让IE6显示透明背景的png图标,蒙上一层灰色不说,还有我用CSS sprites合并的图片背景要比显示图标大得多,所以灰色的区域也更大,看上去就更难看了。
因此在不想额外使用JS的情况下,我就想在IE6与其它浏览器访问网站时加载不同的图片,IE6加载GIF,其它浏览器加载PNG,这样就都能支持了,而且在大部分浏览器看来,图标颜色还算过得去。解决的方法是使用IE6能识别而其它浏览器(包括IE7、8、9)都不支持的CSS代码,比如下划线,IE6能认的“_background”,而其它浏览器就不能认的,只能识别“background”,这样关于背景图片就可以这样写:
{background:url("default/stormcn-z.png") no-repeat; _background:url("default/stormcn-z.gif") no-repeat}
非IE6(IE7、8、9,火狐,chrome,opera)的浏览器可以识别前半段不带下划线的部分,就使用png图片,而IE6认得下划线开头的background,而后面的效果将覆盖前面效果(后面代码比前面优先),则只调用gif图片,这样在IE6和其它浏览器下都能看到透明背景的图片了,虽然IE6下看到图片色彩方面差一点,算了,反正是早就淘汰的浏览器,将就一点吧。以下是浏览器的CSS兼容表。
这段时间以来都在调整我的网站,撤掉了文章列表,改进了css sprites,调整了Logo,折腾了近一个月,现在算是基本结束了,最后只剩下要不要裁掉谷歌分析,看来我还得为此再纠结一段时间。
>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/1119.html