Перейти к содержимому

Как затемнить картинку в css

  • автор:

Как с помощью CSS произвести затемнение картинки?

5c03bfa0bacd1626083107.png

>
Необходимо произвести затемнение картинки как показано на примере, какие есть возможность для реализации данной идеи?
Из

5c03bf57121f3330698472.png

в

  • Вопрос задан более трёх лет назад
  • 72762 просмотра

2 комментария

Простой 2 комментария

delphinpro

Сергей delphinpro @delphinpro Куратор тега CSS

1. Наложить поверх картинки полупрозрачный элемент нужного цвета.
2. Задать фон нужного цвета блоку под картинкой, а самой картинки необходимую прозрачность opacity

Затемнение изображения и фона с помощью CSS

Несколько примеров как затемнить изображение в свойстве background и теге .

Затемнение

Первый способ затемнить img

Сделать тёмный фон под изображением , а самому изображению добавить прозрачность с помощью opacity .

.image < background: #000; >.image img
Пример:

Второй способ затемнить img

CSS фильтр Фильтр brightness у .

.image img
Пример:

Третий способ затемнить img

Полупрозрачный элемент над .

Пример:
.image < position: relative; >.image-filter
Пример:

Затемнение фона background

Если картинка задана через свойство background , то есть два способа ее затемнить:

Первый способ затемнить background

Наложить полупрозрачный слой через псевдо-свойство :before с background-color: rgba(0,0,0,.5) или opacity: 0.6 .

.image < position: relative; height: 420px; width: 100%; background: url(/image.jpeg) 0px 0px no-repeat; background-size: cover; >.image:before

Затенение картинки при наведении

Вполне можно обойтись одним изображением, уменьшая при наведении значение свойства opacity .

Но для достижения требуемого эффекта «затемнения», картинку следует поместить в контейнер вида inline-block с темным фоном и нулевой высотой строки.

Если же мы хотим оставить насыщенность картинки неизменной, а при наведении затемнить только нижнюю часть изображения, то надо создать блок с фоновой картинкой, а в него поместить блок с градиентой заливкой и нулевым значением свойства opacity , которое увеличивать принаведении.

В результате при наведении курсора мыши первая картинка будет становиться светлее, вторая будет затемняться, а у третьей появится тень в нижней части:

Исходный код этого примера:
 .dark < display: inline-block; background-color: rgba(0, 0, 0, 0.5); line-height: 0; >.img < display: inline-block; background: url("/java/ann.jpg"); width: 100px; height: 147px; >.gradient < display: inline-block; background: linear-gradient(to bottom, transparent 60%, rgba(0, 0, 0, 0.75)); width: 100px; height: 147px; opacity: 0; >img:hover, .gradient:hover  

Такой метод можно использовать для всех картинок на странице, для которых вы пожелаете применить эффект «затемнения».

Подскажите, как сделать затемнение фона? (полупрозрачным цветом)

Сейчас на многих сайтах используется такое затемнение, но я не нашел, как его сделать. Например у header есть картинка на фоне, а поверх нее текст. Но чтобы текст читался, поверх картинки накладывается полупрозрачный черный например фон. Как его сделать? Для header имеются такие свойства:

header < height: 538px; width: 100%; background: url(../img/header-bg.png) no-repeat center center; background-size: cover; >

Отслеживать
user212578
задан 3 мая 2017 в 8:19
PolonskiyP PolonskiyP
239 2 2 золотых знака 5 5 серебряных знаков 13 13 бронзовых знаков
Возможный дубликат вопроса: как исключить применение стиля к дочерним селекторам CSS
12 фев 2018 в 19:04

8 ответов 8

Сортировка: Сброс на вариант по умолчанию

header < position: relative; background: url(https://amazingcarousel.com/wp-content/uploads/amazingcarousel/3/images/lightbox/golden-wheat-field-lightbox.jpg) center no-repeat; -webkit-background-size: cover; background-size: cover; >header:after < content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.5); z-index: 2; >.inner
 

Lorem ipsum dolor.

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Reiciendis, eligendi.

Отслеживать
ответ дан 3 мая 2017 в 12:28
22.4k 10 10 золотых знаков 56 56 серебряных знаков 120 120 бронзовых знаков

Это ответ на ваш вопрос:

background: linear-gradient( rgba(255, 255, 255, 0.8), rgba(0, 0, 0, 0.5) ), url('/img/back/home-back.jpg'); background-repeat: no-repeat; background-size: cover; background-attachment: fixed; background-position: top; 

Отслеживать
51.6k 201 201 золотой знак 63 63 серебряных знака 245 245 бронзовых знаков
ответ дан 3 янв 2018 в 16:52
Alisher Aidarkhanov Alisher Aidarkhanov
129 2 2 серебряных знака 7 7 бронзовых знаков

Наложить полупрозрачный блок c rgba бэкграундом (где 4й параметр прозрачность) и с абсолютным позиционированием. HTML:

.header < position: relative; >.cover < background: rgba(0, 0, 0, 0.8); position: absolute; top: 0; bottom: 0; left: 0; right: 0; >.content

Отслеживать
ответ дан 3 мая 2017 в 11:21
307 5 5 серебряных знаков 13 13 бронзовых знаков

отличный простой вариант, но он затемняет и весь остальной контент, и z-index-ом почему-то не регулируется.

3 мая 2017 в 13:19
Отредактировал, думаю так понятней. Мы накладываем блок поверх.
3 мая 2017 в 16:45

Тоже понадобилось такое решение, в итоге не подходили предложения через ::after , position и z-index . В этих случаях нужно все элементы на странице поднимать на позицию выше. Через filter и opacity тоже не вариант, затемняется всё.
Решение простое.

 background: url('../img/header/bg.jpg') no-repeat center /cover, #555555; background-blend-mode: hard-light;//или multiply 

Можете хоть зелёной сделать. И ни где ничего не надо менять.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *