
Тень в веб-элементах позволяет выделить блоки, кнопки или текст, создавая глубину и акцент. В CSS для этого используются свойства box-shadow и text-shadow, каждое из которых решает разные задачи. Первое применяется к блочным элементам, второе – к тексту.
box-shadow задаёт смещение по осям X и Y, радиус размытия и цвет. Например, запись box-shadow: 4px 4px 12px rgba(0,0,0,0.3); создаёт мягкую серую тень, смещённую вправо и вниз. Можно накладывать несколько теней одновременно, разделяя их запятыми, что полезно для сложных эффектов.
text-shadow работает по аналогичному принципу, но применяется к символам. Простейший вариант: text-shadow: 1px 1px 2px #000;. Это решение помогает выделить надписи на фоне изображений или градиентов без использования дополнительных элементов.
Использование этих свойств позволяет контролировать восприятие интерфейса: от лёгких акцентов до объёмных композиций. Важно подбирать силу размытия и прозрачность так, чтобы тень не отвлекала от содержимого, а подчёркивала его.
Применение text-shadow для текста

Свойство text-shadow позволяет задать смещение тени по осям X и Y, степень размытия и цвет. Минимальный синтаксис: text-shadow: смещениеX смещениеY цвет;. Для создания мягкой тени добавляется третий параметр – радиус размытия.
В одном элементе можно использовать несколько теней, перечисляя их через запятую. Это полезно для имитации свечения, объемных эффектов и многоуровневых контуров.
| Пример | CSS | Описание |
|---|---|---|
| Простая тень | text-shadow: 2px 2px #444; |
Смещение вправо и вниз, без размытия. |
| Размытие | text-shadow: 1px 1px 5px #000; |
Мягкая тень вокруг букв. |
| Множественные тени | text-shadow: 0 0 3px #00f, 0 0 6px #0ff; |
Эффект неонового свечения. |
| Контур | text-shadow: 1px 0 #000, -1px 0 #000, 0 1px #000, 0 -1px #000; |
Имитирует обводку текста. |
Для заголовков рекомендуется использовать менее размытую тень с контрастным цветом, чтобы сохранить читаемость. При создании декоративных эффектов важно ограничивать количество теней: слишком много слоев снижает производительность.
Использование box-shadow для блоков
Свойство box-shadow позволяет добавить тень к любому блочному элементу. Синтаксис включает смещения по осям X и Y, радиус размытия, растяжение и цвет.
box-shadow: offset-x offset-y blur-radius spread-radius color;
offset-x– смещение по горизонтали, положительное значение сдвигает тень вправо, отрицательное – влево.offset-y– вертикальное смещение, положительное значение смещает вниз.blur-radius– степень размытия; чем выше число, тем мягче границы.spread-radius– управление размером тени: положительное значение расширяет её, отрицательное уменьшает.color– цвет в любом допустимом формате CSS.
Пример с чёткой тенью:
.block {
box-shadow: 4px 4px 0px 0px #333;
}
Пример с мягкой растянутой тенью:
.card {
box-shadow: 0 8px 20px 5px rgba(0,0,0,0.2);
}
- Для минималистичного эффекта используйте малые смещения и низкий радиус размытия.
- Для создания «воздушности» увеличивайте радиус и добавляйте полупрозрачный цвет.
- Сочетайте несколько теней через запятую для сложных эффектов.
Настройка смещения и размытия тени
Свойство box-shadow принимает значения смещения по оси X и Y, которые определяют положение тени относительно элемента. Положительное значение по X сдвигает её вправо, отрицательное – влево. Положительное значение по Y опускает тень вниз, отрицательное поднимает вверх.
Третий параметр – радиус размытия. Чем он больше, тем мягче и шире границы тени. При значении 0 тень остаётся резкой и чёткой. Например: box-shadow: 10px 5px 0px black; создаёт плотную тень справа и снизу, а box-shadow: 10px 5px 20px black; добавляет плавное размытие.
Для акцентирования деталей применяйте небольшие смещения (2–4px) и низкое размытие (3–6px). Для создания объёмного эффекта используйте более сильное смещение (8–12px) и высокое размытие (15–30px). Настройка этих параметров позволяет управлять глубиной и визуальной иерархией блоков.
Создание множественных теней
Свойство box-shadow поддерживает перечисление нескольких теней через запятую. Каждая тень формируется отдельно и накладывается поверх предыдущей, начиная с первой в списке.
Пример:
div {
box-shadow:
2px 2px 4px rgba(0,0,0,0.3),
-2px -2px 6px rgba(0,0,0,0.2),
0 0 10px rgba(0,0,0,0.4);
}
Первая тень создаёт лёгкий сдвиг вправо и вниз, вторая компенсирует объём слева и сверху, третья добавляет мягкое свечение. Такой приём позволяет сочетать глубину и подсветку без использования дополнительных элементов.
Рекомендуется регулировать прозрачность через rgba(), чтобы тени не сливались в сплошное затемнение. Чем больше число теней, тем важнее грамотно распределять их интенсивность и смещения.
Добавление внутренней тени с inset
Свойство box-shadow поддерживает параметр inset, который формирует тень внутри блока, создавая эффект углубления.
Синтаксис: box-shadow: inset смещениеX смещениеY радиус-размытия радиус-растяжения цвет;. Параметры смещения задают положение тени, радиус размытия контролирует мягкость, радиус растяжения регулирует размер, а inset указывает направление внутрь.
Пример: box-shadow: inset 0 0 10px 2px rgba(0,0,0,0.4); – тень равномерно распределяется по краям блока, формируя аккуратное затемнение.
Для создания акцента на нижней границе можно использовать: box-shadow: inset 0 -4px 6px -2px rgba(0,0,0,0.5);.
Внутренние тени хорошо комбинируются с внешними: box-shadow: inset 0 2px 6px rgba(0,0,0,0.3), 0 4px 8px rgba(0,0,0,0.2);, что позволяет одновременно получить эффект углубления и подъёма элемента.
Применение теней к изображениям и иконкам

Для добавления тени к изображениям и иконкам используется свойство box-shadow. Оно позволяет задать смещение по горизонтали и вертикали, размытие и цвет. Например, box-shadow: 4px 4px 10px rgba(0,0,0,0.5); создаст мягкую тень с небольшим смещением и полупрозрачным черным оттенком.
Для круглых иконок рекомендуется использовать border-radius: 50% совместно с box-shadow. Это обеспечивает равномерное распределение тени вокруг элемента. Например, border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);.
Для создания реалистичного эффекта глубины лучше использовать несколько теней через запятую. Пример: box-shadow: 2px 2px 5px rgba(0,0,0,0.3), 0 0 10px rgba(0,0,0,0.1); – первая тень отвечает за контур, вторая добавляет рассеянное свечение.
Интенсивность и направление тени следует подбирать под контекст дизайна. Для светлых фонов используют более насыщенные тени (rgba(0,0,0,0.4–0.6)), для темных – более мягкие (rgba(0,0,0,0.1–0.3)). Горизонтальное смещение от 2 до 6px и вертикальное от 2 до 8px обычно создают естественный эффект.
Для иконок в интерфейсах полезно комбинировать box-shadow с transition, чтобы тень плавно менялась при наведении: transition: box-shadow 0.3s ease;. Это улучшает визуальное восприятие интерактивных элементов.
Тень можно ограничивать только определенными сторонами с помощью отрицательных смещений и inset. Например, box-shadow: inset 0 -3px 5px rgba(0,0,0,0.2); создаст эффект внутреннего углубления, полезный для кнопок и иконок с подсветкой.
Вопрос-ответ:
Как добавить тень к тексту на странице?
Для того чтобы текст имел тень, используют свойство CSS text-shadow. Оно принимает несколько значений: смещение по горизонтали, смещение по вертикали, размытие и цвет тени. Например, запись text-shadow: 2px 2px 5px gray; создаст серую тень с небольшим смещением и размытием. Это свойство можно применять к любому текстовому элементу, включая заголовки, абзацы и ссылки.
Можно ли сделать тень для блока с фоном?
Да, для блоков с фоном используют свойство box-shadow. Оно позволяет задавать горизонтальное и вертикальное смещение, размытие и цвет тени. Пример: box-shadow: 5px 5px 10px rgba(0,0,0,0.3);. Здесь тень будет смещена вправо и вниз на 5 пикселей, с мягким размытием 10 пикселей и прозрачным черным цветом. Также можно создавать внутренние тени с помощью ключевого слова inset.
Как сделать более мягкую и реалистичную тень?
Чтобы тень выглядела мягкой, важно увеличивать значение размытия. В box-shadow это третий параметр, а в text-shadow аналогично. Кроме того, использование полупрозрачных цветов, например rgba(0,0,0,0.2), делает эффект более естественным. Можно также добавлять несколько теней к одному элементу, разделяя их запятыми, чтобы создать ощущение глубины.
Можно ли сделать тень только с одной стороны элемента?
Да, это возможно, корректируя смещения по горизонтали и вертикали в свойствах box-shadow или text-shadow. Например, чтобы тень была только снизу, горизонтальное смещение ставят равным 0, вертикальное — положительное, а цвет и размытие настраивают по желанию: box-shadow: 0 5px 10px rgba(0,0,0,0.3);. Таким образом тень сместится только вниз и будет выглядеть как падающая с одной стороны.
Можно ли сделать цветную или разноцветную тень?
Да, CSS позволяет задавать любые цвета для теней. Для одного элемента можно использовать несколько теней с разными цветами, перечисляя их через запятую. Например: text-shadow: 2px 2px red, -2px -2px blue;. Это создаст эффект разноцветного свечения текста. Для блоков также можно использовать rgba или hsla цвета, чтобы управлять прозрачностью и создавать плавные переходы.
