Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как добавить тень

Короткий ответ

box-shadow принимает смещение по горизонтали и вертикали, размытие и цвет:

<div style="margin: 8px; padding: 16px; border-radius: 12px; box-shadow: 0 4px 12px rgb(0 0 0 / 20%);">A card with a shadow</div>

Полупрозрачный чёрный выглядит естественнее сплошного серого: тень смешивается с любым фоном.

Мягкая многослойная тень

Несколько теней через запятую дают более реалистичный объём, а четвёртое число — растяжение — увеличивает или уменьшает тень. Ключевое слово inset делает тень внутренней:

<div style="display: flex; gap: 16px; padding: 12px;">
  <div style="padding: 16px; border-radius: 12px; box-shadow: 0 1px 2px rgb(0 0 0 / 10%), 0 8px 24px -4px rgb(0 0 0 / 20%);">Layered</div>
  <div style="padding: 16px; border-radius: 12px; box-shadow: inset 0 2px 6px rgb(0 0 0 / 25%);">Inset</div>
</div>

Тень при наведении

Так карточка «приподнимается»:

<style>
  .card { margin: 8px; padding: 16px; border-radius: 12px; border: 1px solid gainsboro; transition: box-shadow 0.2s; }
  .card:hover { box-shadow: 0 8px 20px rgb(0 0 0 / 25%); }
</style>
 
<div class="card">Hover over me</div>

Для тени у текста есть отдельное свойство text-shadow — о нём ответ «Как добавить тень тексту».

Частая ошибка

Тень обрезается, если у родителя стоит overflow: hidden и нет отступа: тень рисуется за пределами блока, а родитель прячет всё, что выходит за его край. Добавьте родителю padding или уберите обрезку.

Функции из этого ответа

  • box-shadow — Тень вокруг блока элемента.
  • text-shadow — Тень за буквами текста.
  • transition — Плавно анимирует изменение свойства от старого значения к новому.
  • border-radius — Скругляет углы элемента.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.