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

时间:2016-01-26 21:26:04

标签: html css html5 css3 blending

我正在使用混合模式来实现具有衬衫和口袋的组合图像。当我只是拥有 shirtVer shirtHor 层时,这一切看起来都很棒。我可以将它们组合起来并毫无问题地改变跳棋图案的颜色。然后我想添加口袋,并且这样做了。但是因为它们使用乘法混合,最终结果最终是所有四层的混合。这不是我想要实现的目标。

我怎样才能实现(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

1 个答案:

答案 0 :(得分:1)

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

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