Тени и эффекты в CSS
В этой лекции разберём способы добавления теней и фильтров к элементам и тексту.
1. box-shadow — тень блока
Добавляет тень элементу. В отличие от border, тень не увеличивает размер элемента и не влияет на расположение соседей.
Синтаксис: box-shadow: смещение-x смещение-y размытие цвет;
Параметры:
смещение-x— на сколько пикселей тень сдвинута вправо (отрицательное — влево)смещение-y— на сколько пикселей тень сдвинута вниз (отрицательное — вверх)размытие— насколько тень размыта (чем больше, тем мягче)цвет— цвет тени (обычно с прозрачностью, напримерrgba(0,0,0,0.2))
.shadow {
box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.2);
}
✅ Тень смещена на 4px вниз и вправо, размыта на 10px
Внутренняя тень — inset
Ключевое слово inset делает тень внутренней (рисует внутри элемента).
.inset-shadow {
box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.3);
}
✅ Тень внутри элемента, создаёт эффект углубления
border увеличивает размер элемента. box-shadow не влияет на размер и расположение, но может накладываться на соседние элементы.
2. text-shadow — тень текста
Добавляет тень к тексту. Синтаксис похож на box-shadow, но нет параметра размера тени.
Синтаксис: text-shadow: смещение-x смещение-y размытие цвет;
.text-shadow {
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}
✅ У текста появилась мягкая тень
Несколько теней одновременно
Можно добавить несколько теней через запятую. Например, две цветные тени для эффекта тиснения.
.multiple-shadows {
background-color: white;
color: #530899;
text-shadow: 2px 2px 4px #14b8a6,
-2px -2px 4px #ffc107;
}
✅ Бирюзовая тень снизу-справа, жёлтая сверху-слева
3. filter — фильтры
Фильтры позволяют применять к элементу графические эффекты, такие как размытие, изменение яркости, контрастности и другие.
Возможные значения:
blur(px)— размытиеbrightness(%)— яркость (0% — чёрный, 100% — оригинал, >100% — ярче)contrast(%)— контрастностьgrayscale(%)— чёрно-белый (100% — полностью ч/б)drop-shadow()— тень (аналог box-shadow)
Пример 1: размытие (blur)
.blur {
filter: blur(4px);
}
✅ Элемент размыт
Пример 2: чёрно-белый (grayscale)
.grayscale {
filter: grayscale(100%);
}
✅ Цвета стали серыми
Пример 3: яркость (brightness)
.bright {
filter: brightness(150%);
}
✅ Блок стал светлее
Пример 4: тень через drop-shadow
.drop-shadow {
filter: drop-shadow(4px 4px 6px rgba(0,0,0,0.3));
}
✅ То же, что box-shadow, но через filter
Пример 5: комбинация фильтров
.combined {
filter: brightness(120%) contrast(150%) grayscale(50%);
}
✅ Применены сразу три фильтра