Как можно сделать универсальную тень?

Как можно автоматизировать создание теней, аналогичных той на изображении, чтобы они применялись к любому числу, указанному в теге, без необходимости каждый раз задавать конкретное значение для каждого элемента, используя псевдоэлемент ::before?
  • 14 марта 2024 г. 15:39
Ответы на вопрос 1
Для создания универсальной тени, которая может быть автоматически применена к любому числу элементов, можно использовать CSS переменные. Рассмотрим пример:

1. Создаем стиль с переменной для тени:
```css
:root {
  --shadow-color: rgba(0, 0, 0, 0.2);
  --shadow-offset-x: 5px;
  --shadow-offset-y: 5px;
  --shadow-blur-radius: 10px;
}
```

2. Создаем стиль с псевдоэлементом ::before для элемента, которому хотим добавить тень:
```css
.shadowed-element::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  box-shadow: var(--shadow-offset-x) var(--shadow-offset-y) var(--shadow-blur-radius) var(--shadow-color);
}
```

3. Применяем класс `.shadowed-element` к любому элементу, к которому хотим добавить универсальную тень.

Теперь тень будет применяться ко всем элементам с классом `.shadowed-element`, и при необходимости изменить внешний вид тени, достаточно будет только изменить значения переменных в :root стиле.
Похожие вопросы