html - 仅将混合模式应用于投影

标签 html css element dropshadow mix-blend-mode

是否可以将元素的阴影与其重叠的元素的颜色混合?

例如:我有一个元素与另一个元素重叠。顶部的元素有一个浅灰色的阴影。下面的元素是黑色的。我不希望对任何一个元素本身应用任何混合,但希望重叠元素​​的阴影与下方元素的颜色混合,从而在阴影落在重叠元素上的位置创建更深的灰色。

如果我想将效果应用于包括阴影在内的整个元素,那么可以使用 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>

我使用这些颜色是为了说明目的,但您可以用自己的颜色替换它们。

关于html - 仅将混合模式应用于投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52838406/

相关文章:

javascript - 对所有类类型的 jQuery 选择器测试

html - 将一个 div 垂直对齐到另一个 div 旁边

jquery:如何选择隐藏字段?

java - 从二维数组返回字符元素

javascript - React 如何设置组件 id 以便能够使用 document.getElementById()

html - 当两者都是百分比时,嵌套的最小高度不起作用

javascript - 如何创建带有模态窗口的表单?

html - 使 flexbox 中的元素占据所有垂直和水平空间

html - 如何测试 Web 的多设备屏幕密度?

javascript - 在初始化代码的位置创建自定义元素