mix-blend-mode 混合模式 background-blend-mode 背景混合模式


css3 mix-blend-mode 混合模式
  该属性不仅可以作用于HTML,还可以作用于SVG
  兼容性: IE 8~11 Edge 12~14 Firefox 41~47 chrome 45~51 Safari 7~9.1
  支持的值很多:
  mix-blend-mode:normal;    //正常
  mix-blend-mode:multiply;   //正片叠加
  mix-blend-mode:screen;   //滤色
  mix-blend-mode:overlay;   //叠加
  mix-blend-mode:darken;   //变暗
  mix-blend-mode:lighten;   //变亮
  mix-blend-mode:color-dodge;   //颜色减淡
  mix-blend-mode:color-burn;   //颜色加深
  mix-blend-mode:hard-light;   //强光
  mix-blend-mode:soft-light;   //柔光
  mix-blend-mode:difference;   //差值
  mix-blend-mode:exclusion;   //排除
  mix-blend-mode:hue;     //色相
  mix-blend-mode:color;     //颜色
  mix-blend-mode:luminosity; //亮度
  mix-blend-mode:initial;   //初始
  mix-blend-mode:inherit;   //继承
  mix-blend-mode:unset;   //复原

css3 background-blend-mode 背景混合模式 
  可以是背景图片见的混合模式,也可以是背景图片和背景色的混合。
  兼容性: IE 8~11 Edge 12~14 Firefox 41~47 chrome 45~51 Safari 7~9.1
  CSS3 backgrounds多背景IE9+浏览器就开始支持了,因此,你想混合多图,就是要逗号,一个一个写在background属性中就可以了,
  .box {
    background: url(mm1.jpg) no-repeat center, url(mm2.jpg) no-repeat center; 
  }

css3 isolation:isolate 隔离
  值除了万年不变的inherit外还包括auto和isolate
  isolation:isolate 的原理:本质上是因为 isolation:isolate 创建一个新的层叠上下文。 
  只要有元素可以创建层叠上下文,就可以阻断mix-blend-mode
    1.z-index值不为auto的position:relative/position:absolute定位元素。
    2.position:fixed,仅限Chrome浏览器,其他浏览器遵循上一条,需要z-index为数值。
    3.z-index值不为auto的flex项(父元素display:flex|inline-flex)。
    4.元素的opacity值不是1。
    5.元素的transform值不是none。
    6.元素mix-blend-mode值不是normal。
    7.元素的filter值不是none。
    8.will-change指定的属性值为上面任意一个。
    9.元素的-webkit-overflow-scrolling设为touch。

————————————————————————————————————————————————————————————————————————————

一、关于混合模式

熟悉PS的人都应该知道混合模式:
PS混合模式截图

SVG以及Canvas中也有混合模式,本质上都是一样的。

下面是一些常见的混合模式的算法:
混合模式算法

维基上也有说明。有兴趣可以了解下。

本文内容则简单介绍CSS3出现了两个与混合模式有关的属性,mix-blend-modebackground-blend-mode.

二、CSS3 mix-blend-mode

首先,要知道”blend-mode”就是混合模式的意思。那mix, 恩,我也不知道为什么命名为mix, 可能是该属性不仅可以作用于HTML,还可以作用于SVG,干脆叫mix一起捋过来。该CSS属性作用是让元素内容和这个元素的背景以及下面的元素发生“混合”。

兼容性如下:

可见,最近的Chrome以及FireFox浏览器都已经支持良好,而且无需使用私有前缀。

其支持的值很多,中英文对照如下:

mix-blend-mode: normal;          //正常mix-blend-mode: multiply;        //正片叠底mix-blend-mode: screen;          //滤色mix-blend-mode: overlay;         //叠加mix-blend-mode: darken;          //变暗mix-blend-mode: lighten;         //变亮mix-blend-mode: color-dodge;     //颜色减淡mix-blend-mode: color-burn;      //颜色加深mix-blend-mode: hard-light;      //强光mix-blend-mode: soft-light;      //柔光mix-blend-mode: difference;      //差值mix-blend-mode: exclusion;       //排除mix-blend-mode: hue;             //色相mix-blend-mode: saturation;      //饱和度mix-blend-mode: color;           //颜色mix-blend-mode: luminosity;      //亮度mix-blend-mode: initial;         //初始mix-blend-mode: inherit;         //继承mix-blend-mode: unset;           //复原

后面三个酱油气息浓郁,PS中未曾出现,大家可以无视。

如果你想体验各个混合模式的作用表现,您可以狠狠地点击这里:CSS3 mix-blend-mode混合模式Demo

比方说选择叠加,则文字和后面的内容的混合效果就是这样:
叠加效果截图

mix-blend-mode为我们实现一些文字特效又提供了更广阔的思路了。

补充于2016-01-09
mix-blend-mode默认情况下是会混合所有比起层叠顺序低的元素的,如果我们希望值混合某一两个元素,而不是全部,该怎么办呢?可以试试使用CSS3 isolation:isolate,具体如何使用?作用原理是什么?等问题可以参考“理解CSS3中的isolation:isolate”这篇文章。

三、CSS3 background-blend-mode

background-blend-mode这个要更好理解一点,背景的混合模式。可以是背景图片见的混合,也可以是背景图片和背景色的混合。

兼容性如下:

支持的属性值跟上面一样,就不重复展示。

如果你想体验各个混合模式的作用表现,您可以狠狠地点击这里:CSS3 background-blend-mode混合模式Demo

例如,选择一个常见的multiply正片叠底,结果两个妹子合体了:
背景混合正片叠底效果

需要注意的是,只能是background属性中的背景图片和颜色混合,而且只能在一个background属性中。

CSS3 backgrounds多背景IE9+浏览器就开始支持了。因此,你想混合多图,就是要逗号,一个一个写在background属性中就可以了,例如本Demo的两个妹子:

.box {
    background: url(mm1.jpg) no-repeat center, url(mm2.jpg) no-repeat center; 
}

四、结束语

因为是简介,所以本文到此结束。


注:本文转载自练小习的前端技术笔记,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。

热门文章

  • 体育总局冬运中心关于选派2023-2024赛季全国高山滑雪冠军赛技术官员的函
  • 体育总局冬运中心关于公示第十四届全国冬季运动会冬季两项项目参赛运动员名单的函
  • 中国滑雪协会关于发布全国滑雪俱乐部精英联赛(吉林站)竞赛规程的通知
  • 体育总局冬运中心关于第十四届全国冬季运动会冬季两项项目替换运动员的通知
  • 体育总局冬运中心关于公布第十四届全国冬季运动会单板滑雪U型场地等项目决赛参赛运动员名单的通知
  • 体育总局冬运中心关于公布第十四届全国冬季运动会冬季两项项目参赛运动员名单的通知
  • 体育总局冬运中心关于取消举办2023-2024赛季全国冬季两项冠军赛的通知
  • 体育总局冬运中心关于选派裁判员参加2023-2024赛季单板滑雪平行项目全国冠军赛暨国际雪联FIS积分赛的函
  • 中国滑雪协会关于全国滑雪俱乐部精英联赛(吉林站)的补充通知
  • 2023-2024赛季全国跳台滑雪冠军赛竞赛规程
  • 2023-2024赛季全国高山滑雪冠军赛竞赛规程
  • 体育总局冬运中心关于选派2023-2024赛季全国高山滑雪锦标赛暨第十四届全国冬季运动会高山滑雪资格赛技术官员的函
  • 体育总局冬运中心关于发布2023-2024赛季全国自由式及单板滑雪U型场地冠军赛竞赛规程的通知
  • 体育总局冬运中心关于发布2023-2024赛季全国自由式及单板滑雪大跳台和坡面障碍技巧冠军赛竞赛规程的通知
  • 体育总局冬运中心关于公示第十四届全国冬季运动会越野滑雪项目参赛运动员名单的函