Применить режим наложения только к тени

Можно ли смешивать только тень элемента с цветом перекрываемого элемента?

Например: у меня один элемент перекрывает другой. Элемент сверху имеет светло-серую тень. Элемент ниже черный. Я не хочу, чтобы какое-либо смешение применялось к какому-либо из самих элементов, но хочу, чтобы падающая тень перекрывающегося элемента сливалась с цветом элемента ниже, создавая более темный серый цвет, где тень падает на перекрывающийся элемент.

Если бы я хотел применить эффект ко всему элементу, включая тень, то этого можно добиться, используя mix-blend-mode: multiply. Я действительно хочу использовать микс-режим смешивания только для тени - это можно сделать?

1 ответ

Решение

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

.above {
 position: absolute;
 background: green;
 width: 100px;
 height: 100px;
}

.above::before {
 box-shadow: 3pt 3pt 0 0 dodgerblue;
 mix-blend-mode: multiply;
  content: " ";

 position: absolute;
 top: 0;
 right: 0;
 left: 0;
 bottom: 0;
}

.below {
 position: absolute;
 top: 50px;
 left: 50px;

 width: 100px;
 height: 100px;

 background: red;
}
<div class="below">
</div>
<div class="above">
</div>

Я использовал эти цвета в иллюстративных целях, но вы можете заменить их своими.

Другие вопросы по тегам