background-blend-mode

Avatar of Robin Rendle
Robin Rendle

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 $200 免费积分!

background-blend-mode 属性定义了元素的 background-image 如何与其 background-color 混合。

.container {
  background-image: url('image.jpg');
  background-color: red;
  background-blend-mode: screen;
}

在上面的演示中,左侧的默认 background-image 没有设置混合模式,因此图像会覆盖 background-color。 然而,在右侧,混合模式修改了 background-image 与下面的红色 background-color 混合。 但请注意,文本颜色 受此附加属性的影响。

  • initial:默认值,无混合。
  • inherit:继承父元素的混合模式。
  • <blend-mode>:一个值,将根据其 background-color 更改 background-image。

值可以设置为以下任何值(在下面的演示中,background-color 为红色)

normal:如上所示,background-color 不会穿过 background-image。
multiply:background-image 和 background-color 相乘,通常会导致比以前更暗的图像。
screen:图像和颜色都反转,相乘,然后再次反转。
overlay:background-color 与 background-image 混合,以反映背景的亮度或暗度。
darken:如果 background-image 比 background-color 更暗,则替换图像,否则保留原样。
lighten:如果 background-image 比 background-color 更亮,则替换图像,否则保留原样。
color-dodge:background-color 除以 background-image 的倒数。 这与 screen 混合模式非常相似。
color-burn:background-color 反转,除以 background-image,然后再次反转。 这类似于 multiply。
hard-light:如果 background-image 比 background-color 更亮,则结果为 multiply;如果更暗,则结果为 screen。
soft-light:最终结果类似于 hard-light,但更柔和,看起来像是在图像上放置了一个漫射聚光灯。
difference:通过从最亮的背景图像和 background-color 中减去较暗的颜色来获得结果。 通常图像会具有非常高的对比度。
exclusion:结果与 difference 非常相似,但对比度略低。
hue:结果是 background-image 的色调与 background-color 的亮度和饱和度相结合。
saturation:保留 background-image 的饱和度,同时混合 background-color 的色调和亮度。
color:保留 background-image 的色调和饱和度,以及 background-color 的亮度。 在此示例中,由于图像为灰色,并且效果保留了灰度级别,因此我们只得到一个大的灰色斑点。
luminosity:保留顶层颜色的亮度,同时使用 background-color 的饱和度和色调。

链接多个混合模式

每个背景层只能有一个混合模式,但是如果我们使用多个线性渐变,那么每个渐变都可以有自己的混合模式,这会带来有趣的显示效果。

这是通过按您想要影响的背景层顺序列出这些值来实现的。

.container {
  background: 
    linear-gradient(purple 0%, red 90%), 
    linear-gradient(to right, purple 0%, yellow 90%), 
    url('image.jpg') 30px,
    url('image.jpg') 20px;
  background-blend-mode: screen, difference, lighten;
}

第一个线性渐变具有 screen 混合模式,然后是第二个线性渐变,其具有 difference 混合模式,以及第一个背景图像,其应用了 lighten 混合模式。

演示

这是一个工作示例,说明这些值根据 background-color 的解释方式。

浏览器支持

这些浏览器支持数据来自 Caniuse,其中包含更多详细信息。 数字表示浏览器从该版本开始支持该功能。

桌面

ChromeFirefoxIEEdgeSafari
35307910.1

移动/平板电脑

Android ChromeAndroid FirefoxAndroidiOS Safari
12712712710.3

更多信息