web前端入门到实战:CSS mix-blend-mode滤色screen混合模式

本文介绍了CSS滤色screen混合模式,详细解释了其计算原理,并通过实例展示了在网页制作中如何应用滤色模式创建霓虹辉光效果和视频融合,提供了一种减少文件尺寸、提升效果的解决方案。同时,文章提及滤色模式在现代浏览器的广泛兼容性,鼓励前端开发者掌握这一技术。

一、滤色screen混合模式速览

screen混合模式,国内称为“滤色”,其计算公式是:

公式中的C表示最终混合的RGB色值(范围是0-255),A和B表示用来混合的两个颜色的RGB色值(范围也是0-255)。

从公式的内容可以看出,滤色混合模式的颜色,是将两个颜色的互补色的像素值相乘,然后除以255的互补色值。

例如有一个红色,其RGB值是(255,0,0),还有一个蓝色,其RGB值是(0,0,255),则这两个颜色使用滤色混合模式之后的颜色色值是:

  • R = 255 – (255 – 255) * (255 – 0) / 255 = 255
  • G = 255 – (255 – 0) * (255 – 0) / 255 = 0
  • B = 255 – (255 – 0) * (255 – 255) / 255 = 255

于是最终的色值是 RGB(255,0,255) ,也就是下面这个色块的颜色:

然后下面这个是应用mix-blend-mode:screen代码的实时混合色值效果:

可以看到,两个色块呈现的颜色是一模一样的,既验证了公式的正确性,也对滤色模式有了第一次的认识。

二、滤色模式的特性与web应用

以下是一些直观的特性:

  1. 任何颜色和黑色执行滤色,还是呈现原来的颜色;
  2. 任何颜色和白色执行滤色得到的是白色;
  3. 任何颜色和其他颜色执行滤色模式混合后的颜色会更浅,有点类似漂白的效果。

滤色模式模式对于在图像中创建霓虹辉光效果是非常有用的,这一特性对于Web开发也同样受用。

### CSS `mix-blend-mode` 属性详解 #### 一、什么是 `mix-blend-mode` CSS 属性 `mix-blend-mode` 描述了设置元素与其直接父元素的背景如何混合,通过不同的属性值,可以创建诸如叠加、等多种视觉效果[^1]。 #### 二、支持的属性值及其作用 该属性接受多种模式作为其取值,每种模式都定义了一种特定的方式让两个图层相互影响: - **normal**: 默认值。无特殊混合行为。 - **multiply** (正片叠底): 结果颜不会比原颜更亮。黑乘任何都是黑;白则保持不变。 - **screen** (屏幕): 效果正好相反于 multiply。结果总是较浅的颜- **overlay** (叠加): 综合了 multiply 和 screen 的特性,取决于底层颜是深还是浅。 - ... 更多其他选项如 darken, lighten, color-dodge 等也提供了丰富的可能性[^2]. #### 三、实例展示 为了直观感受这些不同模式带来的变化,这里给出几个简单的例子说明如何应用此属性: ##### 实现文字镂空效果 ```html <div class="backdrop"> <p class="text">Water</p> <div class="overlay"></div> </div> <style> .backdrop { position: relative; } .text { font-size: 7em; margin: 0; padding: 0; z-index: 1; } .overlay { background-color: rgba(0,255,255,.1); mix-blend-mode: multiply; /* 应用了multiply混合模式 */ width: 100%; height: 100%; position: absolute; top: 0; } </style> ``` 上述代码片段展示了当我们将一个半透明蓝覆盖在一个文本之上并设置了 `mix-blend-mode: multiply` 后所得到的文字镂空样式[^4]。 ##### 创建双背景图像合成 另一个有趣的案例是在同一个容器内同时加载两张图片,并利用 `background-blend-mode` 来控制它们之间的交互方式: ```css .blend { height: 100vh; background-image: url('image1.jpg'), url('image2.jpg'); background-blend-mode: multiply; /* 使用multiply模式进行两幅图间的融合 */ background-size: cover; } ``` 这段样式的目的是使两张照片按照指定的比例相乘在一起形成新的调组合[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值