Оттенки серого отлично работают со всеми браузерами, кроме ie10 и ie11. Я даже пробовал это. Он хорошо работал с изображениями, которые встроены в HTML-код, но не работают как фоновое изображение, объявленное в CSS.
Я даже попробовал:
img.grayscale:hover {
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/></filter></svg>#grayscale");
}
svg {
background:url(http://4.bp.blogspot.com/-IzPWLqY4gJ0/T01CPzNb1KI/AAAAAAAACgA/_8uyj68QhFE/s400/a2cf7051-5952-4b39-aca3-4481976cb242.jpg);
}
Это тоже не работает.
Код CSS, который я использую в оттенках серого в фоновом изображении:
#callouts{
min-height: 219px;
margin: 33px 0px 0px 0px;
padding-left: 40px;
background: url("/static/images/images/gs-pricing-4panel.png") no-repeat;
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");
filter: gray;
-webkit-filter: grayscale(1);
}
Я являюсь создателем плагина jQuery по адресу https://github.com/karlhorky/gray. Фоновые изображения поддерживаются. Для элемента с фоновым изображением требуется класс grayscale
. Пример здесь.
<div class="grayscale" id="callouts"></div>
ИЛИ. Если вы не хотите использовать имя класса grayscale
, вы можете вручную вызвать плагин jQuery на свой элемент с помощью JavaScript. Пример.
$('#callouts').gray();
IE еще не поддерживает свойство фильтра CSS, либо как встроенные функции фильтра, либо как URL-адрес, ссылающийся на фильтр SVG. Единственный способ получить эффект фильтра - использовать встроенный SVG для вашего изображения и применить к нему фильтр SVG.
Кроме того, IE не любит данные: URI, выраженные в виде простого текста, они должны быть либо полностью закодированы в URL, либо закодированы с базой 64. Но в этом случае это не повлияет.
Я использовал этот инструмент каждый раз, когда мне нужен градиент:
попробуйте JS fix
Он использует javascript для обнаружения браузера и создает холст, а затем использует фильтр
http://www.majas-lapu-izstrade.lv/cross-browser-grayscale-image-example-using-css3-js/