Функция, которую вы ищете filter. Он способен создавать различные эффекты изображения, включая яркость:
#myimage {
filter: brightness(50%);
}
Вы можете найти полезную статью об этом здесь: http://www.html5rocks.com/en/tutorials/filters/understanding-css/
Другой: http://davidwalsh.name/css-filters
И самое главное, спецификации W3C: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html
Обратите внимание, что это то, что совсем недавно появилось в CSS как функция. Он доступен, но большое количество браузеров еще не поддерживает его, а для тех, которые поддерживают его, потребуется префикс поставщика (например -webkit-filter:, -moz-filterи т. Д.).
Также можно создавать подобные эффекты фильтров с помощью SVG. Поддержка SVG для этих эффектов хорошо известна и широко поддерживается (спецификации фильтра CSS были взяты из существующих спецификаций SVG)
Также обратите внимание, что это не следует путать с проприетарным filterстилем, доступным в старых версиях IE (хотя я могу предсказать проблему с конфликтом пространств имен, когда новый стиль отбрасывает префикс поставщика).
Если ничего из этого у вас не работает, вы все равно можете использовать существующую opacityфункцию, но не так, как вы думаете: просто создайте новый элемент сплошного темного цвета, поместите его поверх изображения и затемните его, используя opacity. Эффект будет заключаться в затемнении изображения позади.
Наконец, вы можете проверить поддержку браузера filter здесь .