更新
我刚意识到,这个去色效果只在Chrome浏览器中能够实现。我该如何让它在Firefox、IE和其他浏览器上也能够工作呢?(标题已更改)
我正在按照这里的建议将一张彩色图片转换为灰度图像:Convert an image to grayscale in HTML/CSS
而且它在Chrome浏览器中非常有效: http://jsfiddle.net/7mNEC/
<img src="https://imagizer.imageshack.us/v2/350x496q90/822/z7ds.jpg" />
// CSSS
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");
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: gray;
}
img:hover {
filter: none;
cursor: pointer;
}
但我无法去除例如鼠标悬停时的去色效果。
有什么想法,我做错了什么吗?
filter
规范,因为它还没有足够的稳定性。IE 9 已经弃用了-ms-filter
,而 IE 10 则不支持它。 - Alex W