0

Как создать несколько эффектов теней (DROP-shadow)?

6

Проблема:

Я хочу добавить два теневых эффекта (drop shadow) к фону div с изображением. На данный момент я использую следующий CSS-код:

-webkit-filter: drop-shadow(3px 3px 5px #000000, 2px 2px 2px #ffcc00);
filter: drop-shadow(3px 3px 5px #000000, 2px 2px 2px #ffcc00);

Однако данный код не работает так, как я ожидаю. В результате я не вижу две тени, как планировалось. Как правильно реализовать несколько теней для фона div?

2 ответ(ов)

1

Свойство filter поддерживает несколько фильтров, поэтому вы можете несколько раз использовать drop-shadow:

filter: drop-shadow(3px 3px 5px #000000) drop-shadow(2px 2px 2px #ffcc00);

Для различных классов можно определить фильтры следующим образом:

.gray {
  -webkit-filter: drop-shadow(3px 3px 5px #000000);
  filter: drop-shadow(3px 3px 5px #000000);
}
.yellow {
  -webkit-filter: drop-shadow(2px 2px 2px #ffcc00);
  filter: drop-shadow(2px 2px 2px #ffcc00);
}
.gray-yellow {
  -webkit-filter: drop-shadow(3px 3px 5px #000000) drop-shadow(2px 2px 2px #ffcc00);
  filter: drop-shadow(3px 3px 5px #000000) drop-shadow(2px 2px 2px #ffcc00);
}

Таким образом, вы можете использовать разные классы для отдельных элементов:

<span class="gray">Hello world</span>
+ <span class="yellow">Hello world</span>
= <span class="gray-yellow">Hello world</span>

В результате, элемент с классом gray-yellow будет иметь тени, описанные в обоих фильтрах drop-shadow.

0

Чтобы разделить каждый фильтр пробелом, просто убедитесь, что между ними есть пробел. В вашем случае фильтр drop-shadow уже правильно разделен:

filter: drop-shadow(0px 0px 8px #7f6400) drop-shadow(0px 0px 8px #7f6400);

Каждый фильтр drop-shadow разделён пробелом, что является корректным синтаксисом для CSS. Убедитесь, что вы соблюдаете правильный порядок и наличие пробелов, как показано выше.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь