【发布时间】:2017-04-29 01:27:34
【问题描述】:
我注意到使用mix-blend-mode 时的结果与使用background-blend-mode 时的结果不同,即使您使用的是相同的混合模式。
例如,比较以下 2 个结果:
我在下面的设置和 JSFiddles 中复制了:
HTML
<div class="background">
<div class="overlay"></div>
</div>
CSS
.background{
width:200px;
height:200px;
//background-color:green; //toggle depending on what you want to use
background-blend-mode:soft-light;
background-image:url('http://lorempixel.com/output/nightlife-q-c-640-480-2.jpg');
background-size:cover;
}
.overlay{
width:100%;
height:100%;
background-color:green; //toggle depending on what you want to use
mix-blend-mode:soft-light;
}
JSFiddle
使用混合混合模式:https://jsfiddle.net/p8gkna87/
使用背景混合模式:https://jsfiddle.net/p8gkna87/1/
一些背景资料
我目前正在复制一个使用柔光混合模式的 Photoshop 设计,同时还使用 51% 的不透明度。所以它不能使用background-blend-mode,因为不透明度不能应用于同一个对象。
【问题讨论】:
-
是的,您可以在同一个对象上应用不透明度...或者您不是指背景不透明度?
-
@vals 这个想法是颜色在柔光下是 51% 的不透明度,而背景保持在 100% 的不透明度。我不相信在这种情况下使用同一层是可能的。但是,我刚刚意识到这可能适用于 rgba - 刚刚尝试过,这似乎有效。但是,最初的问题仍然存在 - 为什么两种混合模式之间存在差异。
-
可以,可以使用
rgba使背景色半透明,不影响背景图片 -
一个小提示,在 CSS 中制作 cmets 时使用
//是无效的,可能会给您带来不可预知的结果,请改用/* */ -
@LGSon 好点,不过我正在使用 sass :)
标签: css background-blend-mode mix-blend-mode