仅将混合模式应用于投影
Apply blend mode to drop-shadow only
是否可以将仅元素的阴影与它重叠的元素的颜色混合?
例如:我有一个元素与另一个元素重叠。顶部的元素有一个浅灰色的阴影。下面的元素是黑色的。我不希望对任何一个元素本身应用任何混合,但希望重叠元素的阴影与下方元素的颜色混合,从而在阴影落在重叠元素上的位置创建更深的灰色。
如果我想将效果应用于包括阴影在内的整个元素,那么可以使用 mix-blend-mode: multiply 来实现。我实际上只想在阴影上使用 mix-blend-mode - 这可以做到吗?
你不能这样做,但你可以做的是将阴影应用于大小相同并使用乘法混合模式的伪元素。
.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>
我将这些颜色用于说明目的,但您可以将它们替换为您自己的颜色。
是否可以将仅元素的阴影与它重叠的元素的颜色混合?
例如:我有一个元素与另一个元素重叠。顶部的元素有一个浅灰色的阴影。下面的元素是黑色的。我不希望对任何一个元素本身应用任何混合,但希望重叠元素的阴影与下方元素的颜色混合,从而在阴影落在重叠元素上的位置创建更深的灰色。
如果我想将效果应用于包括阴影在内的整个元素,那么可以使用 mix-blend-mode: multiply 来实现。我实际上只想在阴影上使用 mix-blend-mode - 这可以做到吗?
你不能这样做,但你可以做的是将阴影应用于大小相同并使用乘法混合模式的伪元素。
.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>
我将这些颜色用于说明目的,但您可以将它们替换为您自己的颜色。