Прозрачность (opacity) в CSS
Вы умеете сплошные цвета, фото и градиенты. Иногда нужно, чтобы весь элемент выглядел мягче — приглушённый слой, отключённая кнопка, карточка, которая отступает. Это работа opacity: насколько сплошной или прозрачной кажется вся коробка.
Что делает opacity?
Свойство opacity задаёт непрозрачность элемента. Значение идёт от 1 (полностью сплошной, часто по умолчанию) до 0 (полностью невидимый). Дробные вроде 0.5 посередине. Важно: opacity действует на элемент и всё внутри — текст, рамки, фоны и дочерние блоки тускнеют вместе.
Opacity против альфы цвета
Эти две идеи легко смешать. Держите их раздельно.
📊 Opacity против альфы цвета
| Инструмент | Что тускнеет | Типичное использование |
|---|---|---|
opacity |
Весь элемент (и его дети) | Мягкие оверлеи, вид disabled, позже fade-анимация |
Альфа rgba() / hsla() |
Только этот цветовой слой | Прозрачные фоны с плотным текстом сверху |
Ключевое слово transparent |
Полностью прозрачное цветовое значение | Спрятать цвет рамки, не удаляя свойство |
visibility: hidden |
Визуально скрыто, layout остаётся | Другой инструмент — здесь не углубляемся |
Полностью сплошной и наполовину тусклый
Сначала сравните 1 и 0.5 на одном дизайне карточки.
Сплошной против половинной opacity
css.card-solid {
opacity: 1;
background-color: #ccfbf1;
color: #042f2e;
padding: 1rem;
}
.card-soft {
opacity: 0.5;
background-color: #ccfbf1;
color: #042f2e;
padding: 1rem;
}
Что вы должны заметить
На .card-soft и фон, и текст выглядят вымытыми. Opacity не щадит буквы.
Дети тускнеют вместе с родителем
Если у родителя opacity: 0.4, вложенные заголовки и кнопки не «выпрыгнут», поставив свой opacity: 1. Они уже рисуются внутри тусклого слоя.
Opacity родителя смывает детей
css.overlay {
opacity: 0.4;
background-color: #0f172a;
color: white;
padding: 1rem;
}
.overlay strong {
opacity: 1; /* не возвращает полную силу внутри тусклого родителя */
}
Дизайн-вывод
Матовая панель с чётким текстом? Смягчите цвет фона через rgba, а не весь элемент через opacity.
Предпочитайте rgba, когда должна смягчиться только заливка
Здесь фон панели полупрозрачный, а текст остаётся на полной силе.
Мягкая заливка, плотный текст
css.panel {
background-color: rgba(15, 118, 110, 0.25);
color: #042f2e; /* текст на полной силе */
padding: 1rem;
}
Привычка приглушённого UI
Частый приём: чуть снизить opacity у вторичных действий или отключённых контролов, чтобы они звучали тише — контраст всё равно читаемый.
Приглушённая вторичная кнопка
css.btn-secondary {
opacity: 0.75;
background-color: #e2e8f0;
color: #0f172a;
border: none;
padding: 0.5rem 1rem;
}
Ноль невидим — место может остаться
opacity: 0 делает элемент невидимым, но он всё ещё может занимать место в вёрстке и в зависимости от контекста принимать события указателя. Чтобы убрать из layout, нужен другой инструмент (display: none), не одна opacity.
Невидимый, но ещё в потоке
css.ghost {
opacity: 0;
}
Попробуйте сами
- Две карточки с теми же цветами; одна
opacity: 1, другаяopacity: 0.5. - Жирная строка внутри родителя с
opacity: 0.4— убедитесь, что ребёнка нельзя полностью «растускнить». - Пересоберите мягкий вид через
background-color: rgba(…, 0.25)и плотныйcolor. - Вторичная кнопка с
opacity: 0.75— проверьте читаемость. - По желанию:
opacity: 0на блоке и заметьте щель в вёрстке.
Частые ошибки
- Ставить
opacityна родителя, когда нужен только прозрачный фон - Ждать, что ребёнок с
opacity: 1будет полностью плотным внутри тусклого родителя - Использовать
opacity: 0вместо удаления места из layout - Опускать opacity так низко, что текст теряет контраст
- Путать ключевое слово
transparentсо свойствомopacity
Кратко
opacityзадаёт прозрачность всего элемента (0–1)- Дети тускнеют с родителем — изнутри полностью не вырваться
- Для мягких фонов с плотным текстом предпочитайте альфу
rgba/hsla - Низкая opacity может приглушить UI; думайте о доступности
- Невидимый (
0) — не то же самое, что убран из layout - Практикуйте пару карточек и пересборку через rgba, пока разница не станет очевидной
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху