有没有办法使灰度图像过滤器工作在IE 10没有JavaScript或SVG?
除IE 10之外,所有浏览器都使用了以下代码。
img{ filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale"); /* Firefox 10+,Firefox on Android */ filter:gray; /* IE6-9 */ -webkit-filter:grayscale(100%); /* Chrome 19+,Safari 6+,Safari 6+ iOS */ -moz-filter: grayscale(100%); -o-filter: grayscale(100%);}
解决方法
这种方法只适用于WebKit和Firefox。它不工作在IE或Opera。 WebKit目前是唯一支持CSS过滤器的浏览器,而Firefox支持HTML上的SVG过滤器。 Opera和IE支持SVG过滤器,但仅适用于SVG内容。
在IE10中没有什么好办法,因为它会丢弃对旧版IE过滤器的支持。有一种方法,但是我不推荐它。
您可以使用IE9标准模式使用以下元素来设置IE10:
<Meta http-equiv="X-UA-Compatible" content="IE=9">
这将为旧版IE过滤器重新启用支持。然而,它具有将IE放入IE9模式的副作用,其中不再支持IE10的最新进展。在您的情况下,您可能不需要这些新功能,但如果您走下去,那么在将来更新网站时,您需要注意。