Каков наилучший способ (если есть), чтобы изображение выглядело «серым» с помощью CSS (т.е. без загрузки отдельной, серой версии изображения)?
Мой контекст заключается в том, что у меня есть строки в таблице, у всех из которых есть кнопки в самой правой ячейке, и некоторые строки должны выглядеть светлее, чем другие. Поэтому я, конечно, могу сделать шрифт легче, но я бы также хотел сделать изображения светлее без необходимости управлять двумя версиями каждого изображения.
Используйте свойство фильтра CSS3:
Поддержка браузера немного плохая, но это 100% CSS. Хорошую статью о свойстве фильтра CSS3 вы можете найти здесь: http://blog.nmsdvid.com/css-filter-property/
источник
contrast(x%)
свойство, напримерgrayscale(100%) contrast(30%)
.img { filter: grayscale(100%); opacity: 0.4; }
Ваш здесь:
Css Grey:
Ungray:
Я нашел это в: http://zkiwi.com/topic/chuyen-hinh-mau-thanh-trang-den-bang-css-nhu-the-nao
Редактировать: IE10 + не поддерживает фильтры DX, как это было в IE9 и более ранних версиях, а также не поддерживает префиксную версию фильтра оттенков серого. Вы можете это исправить, используйте одно из двух решений ниже:
<meta http-equiv="X-UA-Compatible" content="IE=9">
источник
Если вы не возражаете против использования немного JavaScript, jQuery fadeTo () прекрасно работает в любом браузере, который я пробовал.
источник
Лучше поддерживать все браузеры:
источник
Вот пример, который позволяет вам установить цвет фона. Если вы не хотите использовать float, вам может потребоваться установить ширину и высоту вручную. Но даже это действительно зависит от окружающего CSS / HTML.
источник
Выделить серым цветом:
«Ахроматизировать».
«Заполнить серым».
Полезные заметки
В чем разница между полутоновым фильтром CSS3 и насыщенным?
https://www.w3.org/TR/filter-effects-1
источник
Вы можете использовать
rgba()
в CSS, чтобы определить цвет вместоrgb()
. Как это:style='background-color: rgba(128,128,128, 0.7);
Дает вам тот же цвет, что и
rgb(128,128,128)
но с непрозрачностью 70%, так что материал позади показывает только 30%. CSS3, но он работает в большинстве браузеров с 2008 года. Извините, нет синтаксиса #rrggbb, о котором я знаю. Поиграйте с числами - вы можете размыть белым, затенить серым, чем хотите разбавить.Итак, вы делаете прямоугольник полупрозрачного серого (или любого другого цвета) и кладете его поверх вашего изображения, возможно, с помощью position: absolute и z-index выше нуля, и вы помещаете его непосредственно перед вашим изображением и по умолчанию Место для прямоугольника будет таким же, как верхний левый угол вашего изображения. Должно сработать.
источник
Учитывая фильтр: выражение является расширением Microsoft для CSS, поэтому оно будет работать только в Internet Explorer. Если вы хотите выделить его серым цветом, я бы порекомендовал установить его непрозрачность на 50%, используя немного JavaScript.
http://lyxus.net/mvБыло бы неплохо начать с , потому что в нем обсуждается сценарий прозрачности, который работает с браузерами с поддержкой Firefox, Safari, KHTML, Internet Explorer и CSS3.
Вы могли бы также хотеть дать этому серую границу.
источник