【问题标题】:Why does CSS mix-blend-mode "darken" produce a different result than Photoshop?为什么 CSS 混合模式“变暗”会产生与 Photoshop 不同的结果?
【发布时间】:2018-11-18 13:13:28
【问题描述】:

据我了解,CSS 的 mix-blend-mode 应该与 Photoshop 的混合模式具有相同的行为方式。但是,在下面的简单示例中,我得到了不同的结果,我不知道为什么。

示例

青色矩形 (#00ffff) 与红色矩形 (#ff0000) 重叠一半。青色矩形的混合模式设置为“变暗”。因为“变暗”为重叠像素选择每个通道 (RGB) 中最暗的部分,并且所有三个通道在两个矩形中的至少一个中为 0,所以我希望重叠区域为黑色。

在 Photoshop 中生成结果

(为清楚起见,勾勒出青色矩形)

  • 青色矩形在黑色背景上不可见(预期)
  • 重叠区域也是黑色的(预期)

网络上的结果(最新的 Chrome,70.0.3538.102)

  • 青色矩形在黑色背景上可见(不是预期的)
  • 重叠区域是暗的 (#2d0c1b),但不是黑色(不是预期的)

现场示例:CodePen

那么...为什么结果不一样?我错过了什么?

【问题讨论】:

  • 覆盖层在我看来是黑色的,可能是你的屏幕?

标签: css mix-blend-mode


【解决方案1】:

结果相同,但黑色背景应用于body,而不是应用mix-blend-mode 的元素的父元素。

将黑色背景移到那里将解决问题:

body {
  background: black;
}
.group {
 background:#000;
}
.a, .b {
  width: 200px;
  height: 100px;
}

.a {
  background: #00ffff;
}

.b {
  background: #ff0000;
  margin-top: -50px;
  mix-blend-mode: darken;
}
<div class="group">
  <div class="a"></div>
  <div class="b"></div>
</div>

mix-blend-mode CSS 属性设置元素的内容应该如何与元素的父元素的内容和元素的背景混合。ref

【讨论】:

  • 感谢您的回答!这就解释了为什么在我的 CodePen 示例中显示了青色矩形的非重叠部分。但是,它仍然没有解释为什么重叠区域显示为#2D0C1B,而不是纯黑色(#000)?
  • @Walmink 在我的情况下它是纯黑色的,它可能与您屏幕的某些设置有关?
  • 我在 Firefox 中尝试过,也变黑了。然后我在 MacBookPro 上进行了色彩校准,发现“sRGB”和“Color LCD-1”在 Safari 和 Chrome 中也产生了正确的混合效果。看起来那两个尊重我过去设置的颜色配置文件。感谢您帮助找到根本原因!
  • P.S.也许将颜色配置文件提示添加到您的答案中以供将来参考?谢谢你:)
  • @Walmink 我赞成你的评论,所以它是答案的一部分,人们会检查它;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-20
  • 2021-11-10
  • 2023-03-16
  • 1970-01-01
  • 2017-02-21
相关资源
最近更新 更多