熟悉Photoshop的伙伴肯定知道图层间的混合模式(blend mode),利用混合模式,可以使图片实现不同的效果,当然,这里并不会跟你说Photoshop,而是CSS3的混合模式。

混合模式:指将上层的图像融入下层图像时采用的各种模式,根据您所选择的模式,你会看到不同的融合后的效果。

在CSS3中,跟混合模式有关的属性有两个:mix-blend-mode和background-blend-mode。

那么,这两个属性可以干嘛呢?

可以实现背景与背景的混合、背景与文字的混合、背景与背景色的混合等等,下面看看这三个效果:

1、mix-blend-mode

mix-blend-mode默认情况下是会混合所有比起层叠顺序低的元素,它是应用于多个元素,而且除背景外,元素内的文字等其他内容也会被混合,也可以这样理解,它会把当前元素和所有在其下方重叠的背景或元素都混和起来。

一般情况下有元素与元素的混合、元素与背景色的混合、元素与背景图片的混合。

语法:

mix-blend-mode:normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity

注意:如果源不是与背景颜色或背景图像混合,必须保证两个元素保持层叠关系(可以理解为重叠关系)。

我们来看看不同值之间的效果:

如果你使用了mix-blend-mode,它会把当前元素和所有在其下方重叠的背景元素都混和起来。如果想让一个与当前元素重叠的元素不受混合模式的影响,该如何设置呢?

我们可以使用isolation属性,isolation主要用来设置源是否与其他元素隔离。

语法:

isolation: auto | isolate

auto为默认值,表示元素不隔离。如果想让元素与其他元素隔离开来,需要将其属性值设置为isolate。

用法:

.isolation{

isolation:isolate;

}

看一个例子:

//第二幅图

//第三幅图

效果图:

2、background-blend-mode

background-blend-mode是指背景的混合模式。可以是背景图片之间的混合,也可以是背景图片和背景色的混合。

语法:

background-blend-mode: normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity

假如我们要设置background-blend-mode属性为multiply:

div{

background-image:url(http://7s1r1c.com1.z0.glb.clouddn.com/t_example_girl.jpg);

background-color:#0062CC;

background-blend-mode: multiply;

}

我们来看看不同值的效果:

通过上面的效果图,我们发现mix-blend-mode和background-blend-mode两者设置相同参数时,效果是一样的,但是请注意,mix-blend-mode是作用于多个元素的,而background-blend-mode是作用于背景与背景或背景与背景色的。

background-blend-mode还支持多背景混合:

//背景与渐变色

.mode1 .mm{

background:radial-gradient(red,blue),url(http://7s1r1c.com1.z0.glb.clouddn.com/t_example_girl.jpg);

background-blend-mode: screen,multiply;

}

//背景与背景

.mode2 .mm{

background:url(http://7s1r1c.com1.z0.glb.clouddn.com/t_example_girl.jpg),url(http://7s1r1c.com1.z0.glb.clouddn.com/t_leaf.jpg);

background-blend-mode: screen,multiply;

}

效果图:

3、Canvas的混合模式

如果你了解canvas,应该知道canvas中也支持混合模式,就是通过设置globalCompositeOperation属性来采取何种混合模式,在这里就不多讲这个,可以看另外一篇文章:Canvas入门基础(六):合成与裁剪

混合模式的简要原理

混合模式本质是分别取前景和背景(参与混合的两个图层)的像素点,然后用它们的颜色值进行数学运算,从而得到一个新的颜色值。每一个重叠区域的像素点都会经过这个计算过程。

兼容性

(1)mix-blend-mode

(2)background-blend-mode

对于这两个参数,我也是刚刚了解,如有错误之处,欢迎指正!

css3 混合,瞧瞧CSS3的混合模式相关推荐

  1. CSS3基础(4)——CSS3 渲染属性

    一. CSS3 计数器详解    CSS3计数器(CSS Counters)可以允许我们使用CSS对页面中的任意元素进行计数,实现类似于有序列表的功能. 与有序列表相比,它的突出特性在于可以对任意元素 ...

  2. css3结束语,理解CSS3 isolation: isolate的表现和作用

    一.关于isolation isolation是一个CSS3属性,顾名思意是"隔离",支持的值除了万年不变的inherit外还包括auto和isolate. 继承没什么好说的.au ...

  3. 【CSS3教程】CSS3基础常用技巧实例集合

    为什么80%的码农都做不了架构师?>>>    CSS3常用技巧 CSS3下条纹&方格斜纹背景的实现 一.效果抢先:CSS3下的条纹背景demo 这些美丽的纹饰全部都是由CS ...

  4. html渐变色CSS3 渐变,如何实现css3渐变色,css3渐变色怎么写

    原标题:如何实现css3渐变色,css3渐变色怎么写 CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡. 以前,你必须使用图像来实现这些效果.但是,通过使用 CSS ...

  5. css3-1 css3游戏介绍、css3样式和优先级

    css3-1 css3游戏介绍.css3样式和优先级 一.总结 一句话总结:我们写外部css表的时候可以用class,那样使用的人用id修改的话优先级就比我们高,达到目的. 1.html嵌套css样式 ...

  6. 好程序员web前端分享DIV+CSS3和html5+CSS3有什么区别

    为什么80%的码农都做不了架构师?>>>    好程序员web前端分享DIV+CSS3和html5+CSS3有什么区别,不管是DIV+CSS3还是html5+CSS3,他们都是我们对 ...

  7. css3常用方法以及css3选择器

    最重要的 CSS3 模块包括: 选择器 框模型 背景和边框 文本效果 2D/3D 转换 动画 多列布局 用户界面 CSS3 边框 CSS3 边框 通过 CSS3,您能够创建圆角边框,向矩形添加阴影,使 ...

  8. html5调盒子边框大小,CSS3 - 盒子大小(CSS3 - Box Sizing)

    CSS3 - 盒子大小(CSS3 - Box Sizing) Box大小调整属性用于更改元素的高度和宽度. 从css2开始,box属性的工作方式如下所示 -width + padding + bord ...

  9. CSS3过渡效果(CSS3)

    CSS3过渡效果(CSS3) <!DOCTYPE html> <html lang="en"><head><meta charset=&q ...

最新文章

  1. 兰州大学计算机考研专硕学费,2018年兰州大学在职硕士研究生学费标准
  2. oracle中lead函数,oracle lead()函数 | 学步园
  3. 安装ubuntu系统步骤
  4. php 目录限制,限定某个目录禁止解析php,限制user_agent,php相关配置
  5. ajax 上传读取excel
  6. 阿里云推出CloudDBA,解决数据库性能优化和问题诊断难题
  7. java中枚举类型详解
  8. CString.Format详解【摘录】
  9. 配置修改Tomcat端口
  10. 弱水三千,只取一瓢饮 的意思
  11. 2018Android面试题总结 上(附答案)
  12. 《暖暖环游世界》:突破女性休闲游戏的商业化局限
  13. 【路径规划】基于粒子群算法求解带时间窗的车辆路径规划问题VRPTW模型matlab源码
  14. 网页兼容性调好了么?
  15. Java高级之Float类和Double类的isNaN()方法
  16. 02 FinalReference.referent的回收时机
  17. 化工厂人员定位系统,有效提高化工安全
  18. OpenCV:将一幅图像复制到另一幅图像的指定区域中ROI
  19. 我与小娜(18):购买LIGO“绝活儿“,值不值?
  20. 蓝桥杯单片机小板100*100简化电路板

热门文章

  1. [汇编与C语言关系]2. main函数与启动例程
  2. Rsyslog分类过略消息关键字收集程序日志
  3. Fitnesse测试系列--如何做成模块Module供调用
  4. oracle参数文件的本质
  5. java数据结构-HashMap
  6. Sharepoint学习笔记 –架构系列—Sharepoint的客户端对象模型(Client Object Model)
  7. Akka2使用探索1(Remoting)
  8. 用oracle列实现sqlserver的自增列
  9. 在SQL和ERWIN中用自定义类型、规则和默认值实现check约束从而保证数据的完整性...
  10. Protobuf3 + Netty4: 在socket上传输多种类型的protobuf数据