Когда нужно из цветного изображения сделать чёрно-белое. В основном, для разных hover-эффектов, когда цветная картинка при наведении курсора становится чёрно-белой. Ну или наоборот.

Способ работает абсолютно во всех браузерах, включая андроиды и 7-й афйон. Не работает только в IE10 и IE11, ну да хрен с ними.

Если надо обесцветить не все картинки на сайте, а только некоторые, присваиваем этим “некоторым” отдельный класс, например img.desaturate. CSS для всех современных браузеров (и настольных, и мобильных) будет состоять всего из одной строчки:

img.desaturate {
filter: grayscale(100%);}

Чтобы это работало в Firefox<35, в IE6–9 и в старых браузерах на движке Webkit, наш CSS будет немного больше:

img.desaturate {
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
filter: gray;
filter: url("data:image/svg+xml;utf8,<svg version='1.1'
xmlns='http://www.w3.org/2000/svg' height='0'><filter
id='greyscale'><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>#greyscale");}

По этому принципу работают галереи на сайте mdstudio.ru, где превьюшки вместо цветных сделаны чёрно-белыми.

http://thenewcode.com/532/Convert-Images-To-Black-And-White-With-CSS

Поделитесь этой страницей