I am making cross-browser image effect, but the effects in different browsers are quite different. I think the filter values are the problem. Here are the codes.
CSS
img {
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.85 0.85 0.85 0 0 0.85 0.85 0.85 0 0 0.85 0.85 0.85 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
filter: grayscale(85%);
-webkit-filter: grayscale(85%);
}
div {
filter: blur(2px);
-webkit-filter: blur(2px);
filter: url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"svgBlur\" x=\"-2%\" y=\"-2%\" width=\"104%\" height=\"104%\"><feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"5\"/></filter></svg>#svgBlur");
}
HTML
<div><img src="http://www.presidiacreative.com/wp-content/uploads/2012/04/interior-design-22.jpg" /></div>
Here is the jsFiddle
Last, here is the screenshot ( Left: Firefox 25, Right: Chrome 31 ).
Note: Target Browser support: Chrome 30+, Firefox 20+, Safari 6+, IE7+