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颜色叠加为何红绿蓝叠加不是黑色?的详细内容,更多请关注【创想鸟】其它相关文章!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。