Перейти к основному содержимому

Свойство CSS box-shadow

К элементу можно добавить одну или несколько теней с помощью свойства CSS box-shadow.

Строго необходимы только горизонтальное и вертикальное смещения.

Кроме них, вы можете выбрать цвет, задать радиус растяжения, добавить размытие или превратить внешнюю тень во внутреннюю (inset).


Горизонтальная и вертикальная тень в CSS

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

Если не указать цвет, тень получит текущий цвет текста.

Пример

Тень, заданная только двумя смещениями:

Prompt
Создайте страницу с элементом div, у которого box-shadow с горизонтальным смещением 10px и вертикальным смещением 10px, без размытия, без растяжения, с использованием цвета тени по умолчанию.
Результат: полная HTML-страница

Укажите цвет для тени

Добавленный параметр цвета определяет, какого цвета будет тень.

Пример

Теперь у тени свой цвет:

Prompt
Создайте страницу с элементом div, у которого box-shadow с горизонтальным смещением 10px, вертикальным смещением 10px и цветом тени lightblue.
Результат: полная HTML-страница

Добавьте эффект размытия к тени

Мягкостью тени управляет параметр размытия, который задаёт её радиус размытия. Чем больше число, тем сильнее размыта тень.

Пример

Здесь края тени смягчены:

Prompt
Создайте страницу с элементом div, у которого box-shadow с горизонтальным смещением 10px, вертикальным смещением 10px, радиусом размытия 5px и цветом тени lightblue.
Результат: полная HTML-страница

Задайте радиус растяжения тени

То, насколько растягивается тень, зависит от параметра растяжения, то есть её радиуса растяжения.

Положительные значения увеличивают тень, а отрицательные уменьшают её.

Пример

Здесь тень увеличивается за счёт радиуса растяжения:

Prompt
Создайте страницу с элементом div, у которого box-shadow с горизонтальным смещением 10px, вертикальным смещением 10px, радиусом размытия 5px, радиусом растяжения 12px и цветом тени lightblue.
Результат: полная HTML-страница

Задайте параметр inset

По умолчанию тень внешняя (outset). С параметром inset она перемещается внутрь рамки элемента и становится внутренней.

Пример

Та же тень, теперь с inset:

Prompt
Создайте страницу с элементом div, у которого внутренний (inset) box-shadow с горизонтальным смещением 10px, вертикальным смещением 10px, размытием 5px и цветом lightblue.
Результат: полная HTML-страница

Добавление нескольких теней

Элемент не ограничен одной тенью.

Перечислите столько теней, сколько вам нужно, разделяя их запятыми.

Пример

Prompt
Создайте страницу с элементом div, у которого несколько box-shadow: 5px 5px 8px синий, 10px 10px 8px красный и 15px 15px 8px зелёный.
Результат: полная HTML-страница

Создание карточек с тенью

С помощью box-shadow можно также создавать карточки, похожие на бумагу.

Текстовая карточка

Текстовое содержимое находится внутри этой карточки, которую приподнимает лёгкая тень:

Prompt
Создайте страницу с div в стиле карточки (шириной 250px, текст по центру), используя box-shadow со значениями «0 4px 8px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)». Включите заголовок «1», дату «1 января 2021» и местоположение «Хардангер, Норвегия».
Результат: полная HTML-страница

Карточка с изображением

В этой карточке над текстовым содержимым расположено изображение:

Prompt
Создайте страницу с div в стиле карточки (шириной 250px, текст по центру), используя box-shadow со значениями «0 4px 8px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19)». Включите изображение-заполнитель сверху и абзац с заголовком «John Doe» и описательным текстом под ним.
Результат: полная HTML-страница