Ви шукаєте функцію 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 тут .