CSS3 -- mix-blend-mode属性详解

这篇具有很好参考价值的文章主要介绍了CSS3 -- mix-blend-mode属性详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一:简介

在上篇文章中,我们利用css的mix-blend-mode属性做了一个简单的文字颜色自适应背景颜色的效果,这篇文章我来解释一下这个属性的用法以及一些简单的案例。

二:介绍

mix-blend-mode 是一种 CSS 属性,它定义了一个元素的颜色如何与其父元素的颜色以及兄弟元素的颜色混合。它允许您创建令人惊艳的视觉效果,可以用于创建半透明效果、添加阴影、制作图片蒙版和很多其他效果。

具体来说,mix-blend-mode 定义了两个元素之间的颜色混合模式。该属性接受许多不同的值,接下来我会逐个介绍。

  1. normal
    默认值。使用正常的颜色混合模式。
  2. multiply
    将两个颜色的值相乘,得到一个更暗的颜色。这通常用于创建阴影效果。
  3. screen
    将两个颜色的值相加,然后减去相乘的值,得到一个更亮的颜色。这通常用于创建高光效果。
  4. overlay
    根据背景颜色的亮度来选择颜色混合模式。如果背景颜色较暗,则使用 multiply 模式;如果背景颜色较亮,则使用 screen 模式。
  5. darken
    将两个颜色的值比较,使用较暗的那个颜色。
  6. lighten
    将两个颜色的值比较,使用较亮的那个颜色。
  7. color-dodge
    将前景色分解为 RGB 分量,并将每个分量分别除以(1 减去背景色的对应分量)。然后将每个分量限制在 0 到 1 之间,并使用限制后的前景色作为混合色。
  8. color-burn
    将前景色分解为 RGB 分量,并将每个分量分别除以背景色的对应分量。然后将每个分量限制在 0 到 1 之间,并使用限制后的前景色作为混合色。
  9. difference
    将前景色减去背景色的值,并取绝对值。这会导致一个反相的效果。
  10. exclusion
    将前景色和背景色的值相加,然后减去相乘的值的两倍。这通常用于创建反相效果。
  11. hue
    将前景色的色相(Hue)与背景色的饱和度(Saturation)和亮度(Lightness)混合。这可以用于在不改变亮度和饱和度的情况下改变颜色。
  12. saturation
    将前景色的饱和度与背景色的色相和亮度混合。这可以用于在不改变颜色的情况下改变饱和度。
  13. color
    将前景色的色相、饱和度和亮度与背景色混合。这可以用于在改变所有颜色属性的情况下改变前景色的颜色。
  14. luminosity
    将前景色的亮度与背景色的色相和饱和度混合。这可以用于在不改变颜色的情况下改变亮度。
  15. mix-blend-mode
    属性可以应用于任何具有背景颜色或背景图像的元素,包括文本、图像和 SVG 图形。通常情况下,您会将 mix-blend-mode 应用于子元素,使其与父元素或其他兄弟元素混合。

三:注意

在混合模式中,元素的颜色值可以是任何一种表示颜色的方式,包括十六进制值、RGB值、RGBA值等。当进行混合计算时,CSS会将两个元素的颜色值转换成标准的RGBA表示方式,并根据混合模式算法对这两个颜色值进行计算,最终生成一个新的RGBA颜色值。
混合模式中的算法涉及到了数学计算,不同的算法使用不同的计算公式。以 multiply 算法为例,它的计算公式是将两个颜色值的每个通道(即红、绿、蓝、透明度四个通道)分别相乘,得到新的颜色值的每个通道。

  • rgb(255,255,0)与一个rgb(0,255,0)相加

两个颜色值相加通常是通过混合模式中的color算法实现的。这个算法将两个颜色值的每个通道(即红、绿、蓝三个通道)进行相加,然后将结果截取到最大值255以内,得到新的颜色值的每个通道。如果通道相加的结果超过了255,则将结果截取到255。因为每个通道的值都在0-255之间,所以相加的结果也应该在这个范围内。
因此,将rgb(255, 255, 0)与rgb(0, 255, 0)相加的结果为rgb(255, 255, 0),因为红色通道相加为255,绿色通道相加为255,蓝色通道相加为0,符合上述算法。

  • rgb(255,255,0)与一个rgb(0,255,0)相乘

两个颜色值相乘通常是通过混合模式中的multiply算法实现的。这个算法将两个颜色值的每个通道(即红、绿、蓝三个通道)进行相乘,然后将结果除以255,得到新的颜色值的每个通道。如果通道相乘的结果超过了255,则将结果除以255后截取到1以内。
因此,将rgb(255, 255, 0)与rgb(0, 255, 0)相乘的结果为rgb(0, 255, 0),因为红色通道相乘为0,绿色通道相乘为255,蓝色通道相乘为0,符合上述算法。

四:案例

以下用几个简单的例子来用一下比较常用的属性值

1. mix-blend-mode: multiply;
此属性值会将两个图层的颜色值相乘,产生一种暗色调的效果。以下是一个简单的例子:

.parent {
  background-image: url('background-image.jpg');
  background-color: #000000;
  mix-blend-mode: multiply;
}

.child {
  background-image: url('foreground-image.png');
}

这个例子中,父元素的背景图和颜色会与子元素的背景图进行相乘,产生一种暗色调的效果。

2. mix-blend-mode: screen;
此属性值会将两个图层的颜色值进行屏幕混合,产生一种亮色调的效果。以下是一个简单的例子:

.parent {
  background-image: url('background-image.jpg');
  background-color: #ffffff;
  mix-blend-mode: screen;
}

.child {
  background-image: url('foreground-image.png');
}

这个例子中,父元素的背景图和颜色会与子元素的背景图进行屏幕混合,产生一种亮色调的效果。

3.mix-blend-mode: overlay;
此属性值会将两个图层进行叠加混合,产生一种高亮度的效果。以下是一个简单的例子:

.parent {
  background-image: url('background-image.jpg');
  background-color: #ffffff;
  mix-blend-mode: overlay;
}

.child {
  background-image: url('foreground-image.png');
}

这个例子中,父元素的背景图和颜色会与子元素的背景图进行叠加混合,产生一种高亮度的效果。

4.mix-blend-mode: difference;
此属性值会将两个图层的颜色值进行差值计算,产生一种反色效果。以下是一个简单的例子:

.parent {
  background-image: url('background-image.jpg');
  mix-blend-mode: difference;
}

.child {
  background-image: url('foreground-image.png');
}

这个例子中,父元素的背景图和子元素的背景图进行差值计算,产生一种反色效果。

5.mix-blend-mode: hue;
此属性值会将两个图层的色相进行混合,产生一种颜色平衡的效果。以下是一个简单的例子:

.parent {
  background-image: url('background-image.jpg');
  mix-blend-mode: hue;
}

.child {
  background-image: url('foreground-image.png');
}

这个例子中,父元素的背景图和子元素的背景图进行色相混合,产生一种颜色平衡的效果。

6.mix-blend-mode: luminosity;
此属性值会将两个图层的亮度进行混合,产生一种亮度平衡的效果。以下是一个简单的例子:

.parent {
  background-image: url('background-image.jpg');
  mix-blend-mode: luminosity;
}

.child {
  background-image: url('foreground-image.png');
}

这个例子中,父元素的背景图和子元素的背景图进行亮度混合,产生一种亮度平衡的效果。

7.mix-blend-mode: color-dodge;
此属性值会将两个图层的颜色值进行颜色减淡计算,产生一种颜色亮度较高的效果。以下是一个简单的例子:

.parent {
  background-image: url('background-image.jpg');
  mix-blend-mode: color-dodge;
}

.child {
  background-image: url('foreground-image.png');
}

这个例子中,父元素的背景图和子元素的背景图进行颜色减淡计算,产生一种颜色亮度较高的效果。

五:总结

以上就是mix-blend-mode属性的详解,欢迎提出问题。文章来源地址https://www.toymoban.com/news/detail-735392.html

到了这里,关于CSS3 -- mix-blend-mode属性详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS选择器-CSS3属性

    持续更新… 1、CSS3的概念和优势 CSS3是CSS技术的升级版本,CSS3语言开发是朝着模块化发展的。以前的规范作为一个模块实在是太庞大而且比较复杂,所以,把它分解为一些小的模块,更多新的模块也被加入进来。这些模块包括:盒子模型、列表模块、超链接方式、语言模块、

    2024年02月11日
    浏览(32)
  • css3 - 属性选择器

    2024年02月14日
    浏览(32)
  • 【CSS3】CSS3 3D 转换 ② ( 3D 透视视图 | “ 透视 “ 概念简介 | 视距与成像关系 | CSS3 中 “ 透视 “ 属性设置 | “ 透视 “ 语法设置 | 代码示例 )

    在本博客中引入 3D 效果 透视视图 Perspective 概念 ; 3D 视图中 产生 3D 效果 , 最终要的是有透视效果 , 通俗的讲 \\\" 透视 \\\" 就是实现 \\\" 近大远小 \\\" 的效果 ; 透视 就是 将 3D 空间中的物体 投影显示到 2D 平面中 ; 透视视图 ( Perspective View ) : 近大远小 , 符合正常人眼观察 3D 世界的规律

    2024年02月13日
    浏览(29)
  • css3 transtion属性的使用

    主要实现多个内容排列时从下到上过渡 或者 从左到右过渡。 思路:主要是利用flex布局的flex-direction属性和align-items属性。 flex-direction属性决定主轴的方向(即项目的排列方向) align-items属性定义项目在交叉轴上如何对齐。 一、从下到上过渡(方案1)  1.先上效果图 效果图

    2024年02月17日
    浏览(36)
  • CSS3渐变属性之重复渐变

    在网页设计中,经常会需要在一个背景上重复应用渐变方式的情况,这时就需要使用重复渐变。 概念:重复线性渐变只是在线性渐变的基础上加个repeating,代表连续重复的意思 语法: 说明:该语法用于定义渐变方式为重复线性渐变,括号内的参数取值和线性渐变的相同。 实

    2024年01月18日
    浏览(38)
  • 无涯教程-CSS3 - 3D转换属性

    使用3d变换,无涯教程可以将元素移动到x轴,y轴和z轴。下面的示例清楚地指定了元素将如何旋转。 以下方法用于调用3D变换- Sr.No. Value Remark 1 matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 用于通过使用矩阵的16个值来变换元素 2 translate3d(x,y,z) 用于通过使用x轴,

    2024年02月20日
    浏览(42)
  • CSS新手入门笔记整理:CSS3属性表

    属性 属性值 说明 text-shadow 数值 文本阴影 text-stroke 数值 文本描边 text-overflow ellipsis(文本溢出时,显示省略号,隐藏多余的文字) clip(文本溢出时,不显示省略号,裁切多余的文字) 文本溢出 word-wrap normal(自动换行) break-word(强制换行) 强制换行 word-break normal(自动换

    2024年02月03日
    浏览(34)
  • 【CSS3】CSS3 3D 转换 ① ( CSS3 3D 转换简介 | 3D 物体与 2D 物体区别 | 3D 空间坐标系 | 常用的 3D 转换属性 | 3D 位移转换语法 | 代码示例 )

    3D 显示的物体 与 平面 2D 显示的物体有明显的不同 , 3D 显示效果有 近大远小 的 特点 ; 元素的 2D 的 转换效果 有 平移 , 旋转 , 缩放 效果 , 同样有对应的 3D 转换效果 ; 2D 平面坐标系 中 , 只有 x 轴 和 y 轴 ; 3D 空间坐标系 比 2D 平面坐标系 多了一个 Z 轴 ; x 轴 : 水平向右 ; 左侧是

    2024年02月12日
    浏览(32)
  • 【CSS3】CSS3 3D 转换 ③ ( 3D 透视视图 | translateZ 转换分析 | 网页调试工具调试 translateZ 属性值 | 代码示例 )

    \\\" 透视 \\\" 是 模拟人的眼镜 , 观察 物体 在 平面上的成像 , translateZ 转换 , 是 物体 沿着 Z 轴 移动 , 也就是下图中的 Z 距离 ; Z 轴的 Z 数值 是 物体 和 成像平面 之间的距离 , 默认为 0 ; 如果 Z 增加 , 说明 物体 越靠近 眼睛 , 在平面上成像范围更大 ; 如果 Z 减小 , 说明 物体 越远离

    2024年02月10日
    浏览(33)
  • css3滤镜属性filter让网页变黑白

    今天是特殊的日子,抗击疫情全国哀悼日,向英雄们致敬,一路走好!应该发现了今天很多网站页面都是黑白色的,我的博客今天都是黑白色,用css3滤镜属性filter让网页马上变黑白,一行代码就搞定。 在你的css里加上以下代码即可,网页马上变黑白:

    2024年02月11日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包