html - 如何停止图层之间的混合?

标签 html css blending

我正在尝试使用混合模式来获得包含衬衫和口袋的组合图像。当我只有 shirtVershirtHor 层时,一切看起来都不错。我可以将它们组合起来并毫无问题地更改跳棋图案的颜色。然后我想加上口袋,就这样做了。但是因为它们是使用乘法混合的,所以最终结果是所有四个层的混合。而这不是我想要实现的。

我怎样才能实现 (shirtVer+shirtHor) 和 (pocketVer+pocketHor) 之间的混合中断?

HTML

<span class="img-position shirtVer">
</span>
<span class="img-position shirtHor">
</span>
<span class="img-position pocketVer">
</span>
<span class="img-position pocketHor">
</span>

CSS

.img-position {
    position: absolute;
    top: 200px;
    left: 0px;
    display: block;
    width: 768px;
    height: 768px;
    background-blend-mode: multiply;
    mix-blend-mode: multiply;
}

.shirtHor {
    background-color: red;
    background-image: url('img/shirtHor.png');
    -webkit-mask-image: url('img/shirtHor.png');
}

.shirtVer {
    background-color: blue;
    background-image: url('img/shirtVer.png');
    -webkit-mask-image: url('img/shirtVer.png');
}

.pocketHor {
    background-color: yellow;
    background-image: url('img/pocketHor.png');
    -webkit-mask-image: url('img/pocketHor.png');
}

.pocketVer {
    background-color: blue;
    background-image: url('img/pocketVer.png');
    -webkit-mask-image: url('img/pocketVer.png');
}

当前结果如下所示,您可以看到衬衫和口袋混合在一起。

enter image description here

最佳答案

感谢一位亲爱的 friend ,我找到了解决方案。我添加了一个具有基本形状的中间层,并且不在该层上执行混合。解决方案:

HTML

<span class="img-position shirtVer mix">
</span>
<span class="img-position shirtHor mix">
</span>
<span class="img-position pocketBase">
</span>
<span class="img-position pocketVer mix">
</span>
<span class="img-position pocketHor mix">
</span>

CSS

.img-position {
    position: absolute;
    top: 200px;
    left: 0px;
    display: block;
    width: 768px;
    height: 768px;
    background-blend-mode: multiply;
}

.mix {
    mix-blend-mode: multiply;
}

.shirtHor {
    background-color: red;
    background-image: url('img/shirtHor.png');
    -webkit-mask-image: url('img/shirtHor.png');
}

.shirtVer {
    background-color: blue;
    background-image: url('img/shirtVer.png');
    -webkit-mask-image: url('img/shirtVer.png');
}

.pocketBase {
    background-image: url('img/pocketFull.png');
    -webkit-mask-image: url('img/pocketFull.png');
}

.pocketHor {
    background-color: yellow;
    background-image: url('img/pocketHor.png');
    -webkit-mask-image: url('img/pocketHor.png');
}

.pocketVer {
    background-color: blue;
    background-image: url('img/pocketVer.png');
    -webkit-mask-image: url('img/pocketVer.png');
}

最终结果如预期:

enter image description here

关于html - 如何停止图层之间的混合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35024295/

相关文章:

javascript - JQuery:如果存在具有相同ID的元素,则选择第二个元素

css - Ext5 : Pie chart being cut off when hovering

jquery - 合并 Foundation 后动画突然不起作用?

python - 在 OpenCV 中,您可以使用 addWeighted 获得每个像素的权重吗?

java - OpenCV java alpha 混合

javascript - 在搜索时过滤表行使 onClick 不起作用

javascript - 如何改进我的网页代码以适应更小的尺寸?

javascript - 如何使用 JQuery 根据条件将表移动到 DIV 容器的顶部?

css - 在 W3C 验证器中测试任何 xhtml css 代码片段有效性的最快方法是什么?