css颜色叠加的真相:红绿蓝叠加并非黑色?
CSS颜色叠加的结果有时会与直觉相悖。为什么红、绿、蓝三种基础色叠加后并非黑色?
关键在于:叠加并非混合
通常情况下,CSS颜色叠加并非颜料混合,而是层叠覆盖。就像叠放彩色透明纸,上层颜色会遮盖下层颜色。
光学三原色与颜料三原色:不同的混合原理
立即学习“前端免费学习笔记(深入)”;
光学三原色(红绿蓝)叠加产生白色,这是因为光线叠加,而非颜料吸收。而颜料混合则吸收光线,因此红绿蓝颜料混合趋向于黑色。
实现颜色混合:CSS混合模式
要模拟颜料混合,需要使用CSS的mix-blend-mode属性。该属性控制元素如何与底层元素进行混合。
以下示例演示了如何使用mix-blend-mode: multiply;实现颜色混合:
.container { width: 100px; height: 100px; display: flex; justify-content: center; align-items: center; } .red { width: 50px; height: 50px; background: red; opacity: 0.5; } .green { width: 50px; height: 50px; background: green; opacity: 0.5; mix-blend-mode: multiply; /* 关键属性 */ } .blue { width: 50px; height: 50px; background: blue; opacity: 0.5; mix-blend-mode: multiply; /* 关键属性 */ }
将三个div层叠,使用multiply混合模式,就能观察到红绿蓝叠加后的颜色,并非黑色,而是更接近于深色调的混合色。 这才是真正的色彩混合效果。
以上就是CSS颜色叠加为何红绿蓝叠加不是黑色?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号