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

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

Свойство box-shadow позволяет добавлять несколько теней вокруг элемента, указывая значения для горизонтального смещения, вертикального смещения, радиуса размытия, радиуса расширения, цвета и ключевого слова inset.

Свойство box-shadow является одним из свойств CSS3.

Вы можете добавлять несколько эффектов, разделяя их запятыми. Если для элемента с тенью задан border-radius, тень будет иметь такие же скругленные углы.

Это два значения, задающие смещение тени. h-offset указывает горизонтальное расстояние. Положительные значения размещают тень справа от элемента, отрицательные — слева. v-offset указывает вертикальное расстояние. Положительное значение размещает тень под элементом, отрицательное — над ним. Если оба значения равны 0, тень появляется прямо за элементом.

Третье значение — радиус размытия. Оно необязательно. Чем больше число, тем больше и светлее становится размытие. Отрицательные значения недопустимы. Если значение опущено или равно 0, край тени будет четким.

Четвертое значение — радиус расширения. Он необязателен. Положительные значения заставляют тень расширяться, а отрицательные — сужаться. Если значение опущено или равно 0, тень будет того же размера, что и элемент.

Пятое значение — цвет. Он необязателен. Если значение опущено, тень по умолчанию принимает вычисленный цвет текста элемента.

Шестое значение — ключевое слово inset. Оно необязательно и может располагаться в любом месте определения тени. При его наличии создается внутренняя тень вместо внешней.

Initial Valuenone
Applies toВсем элементам. Также применяется к ::first-letter.
InheritedНет.
AnimatableДа. Тень блока можно анимировать.
VersionCSS3
DOM Syntaxobject.style.boxShadow = "15px 25px 35px gray";

Синтаксис

Синтаксис свойства CSS box-shadow

css
box-shadow: none | h-offset v-offset blur-radius spread-radius color inset;

Попробуем добавить тень к элементу.

Пример свойства box-shadow:

Пример свойства CSS box-shadow

html
<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        width: 150px;
        height: 50px;
        background-color: #eee;
        box-shadow: 5px 4px 10px #1c87c9;
      }
    </style>
  </head>
  <body>
    <h2>Box-shadow example</h2>
    <div></div>
  </body>
</html>

Результат

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

Несколько теней

Вы можете указывать несколько теней через запятую. Например, использование приведенного ниже кода создаст 3 тени с разными цветами и позициями для одного элемента.

Пример использования свойства box-shadow для добавления нескольких теней к элементу:

Пример свойства CSS box-shadow с несколькими значениями

html
<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        width: 50%;
        height: 100px;
        border: 1px solid;
        padding: 10px;
        box-shadow: 5px 5px #1c87c9, 10px 10px #ccc, 15px 15px #8ebf42;
      }
    </style>
  </head>
  <body>
    <h2>Multiple shadows with box-shadow.</h2>
    <div></div>
  </body>
</html>

Результат

Несколько теней со свойством box-shadow

Теперь добавим элементу значение inset. Оно создает тень внутри блока.

Пример свойства box-shadow со значением "inset":

Пример свойства CSS box-shadow со значением inset

html
<!DOCTYPE html>
<html>
  <head>
    <style>
      div {
        width: 150px;
        height: 50px;
        background-color: #eee;
        box-shadow: inset 8px 8px 10px grey, 8px 8px 10px black;
      }
    </style>
  </head>
  <body>
    <h2>Box-shadow with inset value</h2>
    <div></div>
  </body>
</html>

Результат

Свойство box-shadow со значением inset

Тень с одной стороны

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

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

css
.shadow {
  box-shadow: 0 10px 8px -4px yellow;
}

Пример свойства box-shadow с отрицательным значением радиуса расширения:

Пример свойства box-shadow

html
<!DOCTYPE html>
<html>
  <head>
    <style>
      .shadow {
        width: 100px;
        height: 100px;
        box-shadow: 0 10px 8px -4px yellow;
        background-color: #cccccc;
      }
    </style>
  </head>
  <body>
    <div class="shadow"></div>
  </body>
</html>

Значения

ЗначениеОписаниеЗапустить
noneТень не задана.Запустить »
h-offsetОбязательно. Горизонтальное смещение тени. Положительное значение размещает тень справа от блока, отрицательное — слева.Запустить »
v-offsetОбязательно. Вертикальное смещение тени. Положительное значение размещает тень под блоком, отрицательное — над ним.Запустить »
blur-radiusНеобязательно. Тень размывается. Чем больше число, тем сильнее размытие. Отрицательные значения недопустимы.Запустить »
spread-radiusНеобязательно. Тень расширяется/сужается. Положительное значение увеличивает размер тени, отрицательное — уменьшает.Запустить »
colorНеобязательно. Цвет тени. Если опущено, по умолчанию используется цвет текста элемента.Запустить »
insetНеобязательно. Ключевое слово, которое можно указать в любом месте определения тени. Превращает внешнюю тень во внутреннюю.Запустить »
initialУстанавливает свойству его значение по умолчанию.Запустить »
inheritНаследует свойство от родительского элемента.

Практика

Какие свойства можно настроить при задании box-shadow в CSS?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.