Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как сделать полупрозрачный фон

Короткий ответ

Добавьте к цвету фона прозрачность через косую черту:

<div style="padding: 16px; background: url(/media/photo-400x250.jpg) center / cover;">
  <p style="margin: 0; padding: 12px; background: rgb(255 255 255 / 70%);">White background at 70%, text fully solid</p>
</div>

Последнее число — непрозрачность: 0% — полностью прозрачно, 100% — сплошной цвет. Можно писать и дробь: 0.7.

Другие форматы

Альфа-канал есть у всех форматов цвета:

.a { background: hsl(200 80% 50% / 0.3); }
.b { background: #00808080; } /* the last two hex digits are alpha */
.c { background: transparent; }

Почему не opacity

opacity делает прозрачным весь элемент вместе с текстом и детьми. Сравните:

<div style="padding: 12px; background: url(/media/photo-400x250.jpg) center / cover;">
  <p style="padding: 8px; background: black; color: white; opacity: 0.5;">opacity: text fades too</p>
  <p style="margin: 0; padding: 8px; background: rgb(0 0 0 / 50%); color: white;">rgb alpha: text stays solid</p>
</div>

Частая ошибка

Пытаются вернуть непрозрачность тексту через opacity: 1 у ребёнка — не выйдет: прозрачность родителя применяется ко всему, что внутри, и ребёнок не может стать «непрозрачнее» его. Делайте прозрачным только цвет фона.

Функции из этого ответа

  • rgb() — Цвет из красной, зелёной и синей составляющих, по желанию с прозрачностью.
  • opacity — Прозрачность всего элемента вместе с содержимым.
  • background-color — Цвет фона элемента.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.