5 примеров, которые помогут понять, как работает CSS opacity

С помощью свойства CSS opacity можно контролировать CSS прозрачность HTML-элементов веб-страницы, таких как текст, изображения или фон. В данной статье мы расскажем об этом свойстве, а также приведем несколько примеров.

Как работает непрозрачность в CSS

Термин «непрозрачный» используется для описания объектов, которые полностью видимые. На веб-странице непрозрачный элемент имеет значение свойства opacity 1, а полностью прозрачный - opacity, равное 0. По умолчанию все элементы имеют opacity, равное 1.

Значение от 0 до 1 определяет уровень прозрачности элемента. Например, следующий код уменьшит прозрачность CSS наполовину:

div { opacity: 0.5 }

Элемент с непрозрачностью 0 будет полностью невидимым, но он все равно будет занимать физическое пространство на странице. Следовательно, чтобы сделать элемент видимым, нужно использовать в CSS свойство opacity, а также свойство visibility.

opacity было введено в CSS3 и на сегодняшний день хорошо поддерживается браузерами. Если ваш проект требует поддержки Internet Explorer 8 или более ранних версий, то нужно использовать свойство MS alpha filter следующим образом:

div {
  opacity: 0.5;
  filter: alpha(opacity=50);
}

Обратите внимание, что прозрачность фона CSS может задаваться десятичными значениями от 0 до 1, а значения непрозрачности альфа-фильтра - в диапазоне от 0% до 100%.

Управление непрозрачностью родительских и дочерних элементов

Непрозрачность применяется ко всему элементу равномерно. Непрозрачность дочерних элементов также зависит от значения свойства его родителей. Для достижения различных уровней прозрачности нужно применять разные значения непрозрачности для родительских и дочерних элементов. Например:

#parent { opacity: 0.8 }
#child { opacity: 0.5 }

Следующие примеры иллюстрируют, как дочерние элементы влияют на непрозрачность их родителей:

Управление непрозрачностью родительских и дочерних элементов

В первом примере для обоих полей задана непрозрачность 1. Во втором примере родительское поле (черное) имеет непрозрачность 0.8, а дочернее (оранжевое) -1. В третьем родительский элемент имеет непрозрачность 0.8, а дочерний – 0.5. Обратите внимание на разницу в цветовом тоне (прозрачности) оранжевого поля во всех трех примерах.

Использование свойства CSS opacity для создания прозрачных изображений

С помощью свойства opacity можно легко добавить прозрачность background CSS к изображениям. Предположим, что мы выводим одно и то же изображение на странице два раза. Следующий код сделает второе изображение прозрачным:

#img1 { opacity: 1 }
#img2 { opacity: 0.6 }

В результате мы получим следующее:

Использование свойства CSS opacity для создания прозрачных изображений

Изменение непрозрачности при наведении курсора мыши

Также можно управлять CSS прозрачностью изображений или других HTML-элементов при наведении курсора мыши. Для этого в предыдущем примере нужно изменить значение свойства opacity. Следующий код сделает изображение прозрачным при наведении на него курсора мыши:

#img1 { opacity: 1 }
#img1:hover { opacity: 0.6 }

<img id="img1" src="image.jpg" />

Использование свойства CSS opacity для фона

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

div {
  opacity: 0.5;
}

Во втором способе необходимо указать значение альфа-канала в RGBA (красный, зеленый, синий, альфа) в объявлении цвета фона. Это делается следующим образом:

div {
  background: rgba(0, 0, 0, 0.5);
}

Изменяя значения R, G и B, можно получить прозрачность background CSS любого цвета. Аналогично можно получить непрозрачные дочерние элементы внутри прозрачных родительских элементов. Как правило, значение непрозрачности родительского элемента выше, чем у дочерних. Тем не менее, с помощью прозрачного фона можно сделать дочерние видимыми, сохраняя при этом прозрачность их контейнера.

Прозрачные рамки с помощью CSS

Если вы используете большие рамки и вам необходимо применить к ним непрозрачность, то нужно установить для цвета рамки значение альфа-канала, как показано в следующем примере:

.image-box {
  border: 15px solid rgba(0, 0, 0, 0.5);
}

На этом мы завершаем рассмотрение свойства CSS opacity. Мы привели примеры для различных случаев использования данного свойства, и надеемся, что они помогут вам лучше понять, как оно работает.

Вадим Дворниковавтор-переводчик статьи «5 Examples to Help You Understand How CSS Opacity Works»

Дайте знать, что вы думаете по данной теме статьи в комментариях. За комментарии, отклики, лайки, подписки, дизлайки огромное вам спасибо!