转自:http://www.webhek.com/css-blend-mode/

注意:只有使用最新版的谷歌浏览器、火狐浏览器,才能正确的显示本文中的演示。

Photoshop里最没有用处的一种功能——但也有人说是使其超出竞争对手的一种功能——就是混合模式(blend mode)。混合模式是指两个像素点叠落到一起,用不同的方法混合它们的颜色。比如,darken颜色混合模式,就是选择两个像素中颜色更深的一个输出。当将混合模式运用到整张图片上时,会产生让人惊讶的效果。

虽然并不是Adobe的Photoshop发明了混合模式,但它的实现效果是最真实的。可现在,你不需要使用Photoshop来运用混合模式美化你的图片,因为CSS3里提供里动态的实现这种效果的方法。

浏览器支持情况

做为CSS3的新特征之一,各种浏览器对background-blend-mode属性的支持情况还在改进中。对于早期的浏览器,需要在CSS里使用浏览器引擎前缀,或激活实验性设置。根据caniuse.com报告显示,Firefox 30,Chrome 35,Opera 22都是已经支持这个特征。

虽然IE现在仍然没有实现对混合模式的支持,但混合模式是一种非常好的提高页面美观的工具,我们可以考虑在页面中使用它。

background-blend-mode的用法

CSS3里提供了大量的混合模式的用法,但对于我们来说最有用处的一种用法是使用background-blend-mode。这个属性能让我们混合两张图片或混合一个图片和一种背景色。

在下面的演示中我们将使用如下代码:

<div class="blend lazy "></div>

使用的CSS:

.blend
{
width:782px;
height:540px;
background:#3db6b8 url("lighthouse.jpg") no-repeat center center;
}

下面我们就可以添加混合模式效果了。

我们需要添加另外一个CSS类,比如对于“multiply”模式:

<div class="blend multiply lazy "></div>

然后我们再写一个CSS规则:

.blend.multiply
{
background-blend-mode: multiply;
}

Multiply 正片叠底

Multiply 正片叠底, 正如名称示意的,用混合颜色来增重基色,产生一种更深的颜色。用黑色正片叠底的结果是黑色,用白色正片叠底的结果是图片没有任何变化。

background-blend-mode: multiply;
 

Screen 滤色

Screen 滤色是两个像素色的逆向正片叠底。滤色和正片叠底正好相反,使用白色进行虑色会产生白色,使用黑色虑色的结果是图像没有变化。

background-blend-mode: screen;
 

Overlay 叠加

Overlay 叠加是一种复杂的混合模式。颜色变深的程度依赖于基色:浅色变的更浅,深色变得更深。

background-blend-mode: overlay;
 

Darken 变暗

Darken 变暗, 让图片更暗。它会选择使用两个重叠的像素中颜色更深的那个。

background-blend-mode: darken;
 

Lighten 变亮

跟变暗相反,lighten 变亮模式会选择另个叠加的像素中颜色较轻的那个。

background-blend-mode: lighten;
 

Color dodge 颜色减淡

Color dodge 颜色减淡减小对比度使基色变亮以反映混合色。

background-blend-mode: color-dodge;
 

Color burn 颜色加深

Color burn 颜色加深 跟颜色减淡相反,通过增加对比度使基色变暗以反映混合色。

background-blend-mode: color-burn;
 

Hard light 强光模式

Hard light 强光模式“强光”模式将产生一种强光照射的效果。如果“混合色”颜色“基色”颜色的像素更亮一些,那么“结果色”颜色将更亮;如果“混合色”颜色比“基色”颜色的像素更暗一些,那么“结果色”将更暗。

background-blend-mode: hard-light;
 

Soft light 柔光模式

Soft light 柔光模式跟强光模式类似,“柔光”模式会产生一种柔光照射的效果。如果“混合色”颜色比“基色颜色的像素更亮一些,那么“结果色”将更亮;如果“混合色”颜色比“基色”颜色的像素更暗一些,那么“结果色”颜色将更暗,使图像的亮度反差增大。

background-blend-mode: soft-light;
 

Difference 差值模式

Difference 差值模式 “差值”模式是将从图像中“基色”颜色的亮度值减去“混合色”颜色的亮度值,如果结果为负,则取正值,产生反相效果。由于黑色的亮度值为0,白色的亮度值为255,因此用黑色着色不会产生任何影响,用白色着色则产生被着色的原始像素颜色的反相。

background-blend-mode: difference;
 

Exclusion 排除模式

Exclusion 排除模式与“差值”模式相似,但是具有高对比度和低饱和度的特点。比用“差值”模式获得的颜色要柔和、更明亮一些。

background-blend-mode: exclusion;
 

Hue 色相模式

Hue 色相模式只用“混合色”颜色的色相值进行着色,而使饱和度和亮度值保持不变。当“基色”颜色与“混合色”颜色的色相值不同时,才能使用描绘颜色进行着色

background-blend-mode: hue;
 

Saturation 饱和度模式

Saturation 饱和度模式, “饱和度”模式的作用方式与“色相”模式相似,它只用“混合色”颜色的饱和度值进行着色,而使色相值和亮度值保持不变。当“基色”颜色与“混合色”颜色的饱和度值不同时,才能使用描绘颜色进行着色处理

background-blend-mode: saturation;
 

Color 颜色模式

Color 颜色模式能够使用“混合色”颜色的饱和度值和色相值同时进行着色,而使“基色”颜色的亮度值保持不变。“颜色”模式模式可以看成是“饱合度”模式和“色相”模式的综合效果。该模式能够使灰色图像的阴影或轮廓透过着色的颜色显示出来,产生某种色彩化的效果。

background-blend-mode: color;
 

Luminosity 亮度模式

Luminosity 亮度模式能够使用“混合色”颜色的亮度值进行着色,而保持“基色”颜色的饱和度和色相数值不变。其实就是用“基色”中的“色相”和“饱和度”以及“混合色”的亮度创建“结果色”。此模式创建的效果是与“颜色”模式创建的效果相反

background-blend-mode: luminosity;
 

CSS3

经典CSS颜色混合模式的更多相关文章

  1. css 颜色混合模式 mix-blend-mode

    CSS3 新增了一个很有意思的属性 -- mix-blend-mode ,其中 mix 和 blend 的中文意译均为混合,那么这个属性的作用直译过来就是混合混合模式,当然,我们我们通常称之为混合模式 ...

  2. 谈谈一些有趣的CSS题目(十七)-- 不可思议的颜色混合模式 mix-blend-mode

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  3. 不可思议的颜色混合模式 mix-blend-mode (转)

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  4. 经典CSS坑:如何完美实现垂直水平居中?

    经典CSS坑:如何完美实现垂直水平居中? 踩了各种坑之后总结出的方法,开门见山,直接上代码和效果图.希望对读者有所帮助,后续如果有更好的方法,我也会持续更新 第一种方法:transform(个人认为最 ...

  5. Python | 面试的常客,经典的生产消费者模式

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第23篇文章,我们来聊聊关于多线程的一个经典设计模式. 在之前的文章当中我们曾经说道,在多线程并发的场景当中,如果我 ...

  6. 深入理解CSS六种颜色模式

    前面的话 赏心悦目的颜色搭配让人感到舒服,修改元素颜色的功能让人趋之若鹜.但颜色规划不当,会让网站用户无所适从.颜色从<font color="">发展至今,保留了很多 ...

  7. HTML案例—很讨巧的一种js+css制作hover模式展示二级菜单方法

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>利 ...

  8. 经典CSS实现三角形图标原理解析

    前言: 在写这篇文章之前,我也看过很多前端大神写的代码,But,都只是粘贴代码和给出显示效果,对于初学者来说大家都喜欢刨根问底,为什么要这样做呢? 接下来就让我给大家分享一下我对CSS实现三角形的理解 ...

  9. immutable-styles 新的css style 开发模式

    immutable-styles 是一个开源的library,可以方便我们开发强壮以及可预测的web 界面,不用担心其他css 的影响 特性 编译时错误提示 防止css 覆盖 分离破坏点 严格继承 重 ...

随机推荐

  1. SqlDataReader类

    一.常用属性 名称 说明 Depth 获取一个值,用于指示当前行的嵌套深度.  FieldCount 获取当前行中的列数. HasRows 获取一个值,该值指示 SqlDataReader 是否有行. ...

  2. jquery判断元素是否隐藏的多种方法

    第一种:使用CSS属性 复制代码 代码如下: var display =$('#id').css('display'); if(display == 'none'){    alert("被 ...

  3. ZOJ3414Trail Walk(计算几何)

    Trail Walk Time Limit: 2 Seconds      Memory Limit: 65536 KB FatMouse is busy organizing the coming ...

  4. Struts2(四)——页面相关内容

    上篇博客总结了数据流转各个方面的内容,这篇重点说一下框架对于界面上知识. 一,说到页面,记得在总体介绍中,说到Struts2比Struts1的一方面优势就是它支持更多的视图技术(Freemarker, ...

  5. LightOJ 1338 && 1387 - Setu && LightOJ 1433 && CodeForces 246B(水题)

    B - B Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status P ...

  6. 【技术文档】《算法设计与分析导论》R.C.T.Lee等·第5章 树搜索策略

    计算机中许多问题的解空间可以用一棵树来表示,最优解就在树中的一个分支上,因此,我们在解这类问题时可以采用树搜索策略,最经典的问题包括0/1背包问题.旅行商问题.哈密顿回路问题,还有8数码问题(就是我们 ...

  7. Java中的5种同步辅助类

    当你使用synchronized关键字的时候,是通过互斥器来保障线程安全以及对共享资源的同步访问.线程间也经常需要更进一步的协调执行,来完成复杂的并发任务,比如wait/notify模式就是一种在多线 ...

  8. WPF实现窗体最小化后小图标在右边任务栏下

    一 基本功能 1. 这里是用 NotifyIcon 控件来实现,但 WPF 下没有 NotifyIcon  控件,怎么办,用 WinForm 下的呗. 先引用  .NET 自带的两个程序集 Syste ...

  9. BAK文件怎么恢复到数据库中

    1.右击SQLServer2000实例下的“数据库”文件夹.就是master等数据库上一级的那个图标.选择“所有任务”,“还原数据库” 2.在“还原为数据库”中填上你希望恢复的数据库名字.这个名字应该 ...

  10. Java并发编程之ThreadLocal类

    ThreadLocal类可以理解为ThreadLocalVariable(线程局部变量),提供了get与set等访问接口或方法,这些方法为每个使用该变量的线程都存有一份独立的副本,因此get总是返回当 ...