zoukankan      html  css  js  c++  java
  • CSS3混合模式mix-blend-mode/background-blend-mode简介

    一、关于混合模式

    熟悉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; 
    }


    本文来源于 张鑫旭 博客
    原文地址: http://www.zhangxinxu.com/wordpress/?p=4819

  • 相关阅读:
    邻居子系统 之 更新neigh_update
    邻居子系统 之 邻居项查找neigh_lookup、___neigh_lookup_noref
    遍历集合的方法总结
    Java集合中List,Set以及Map等集合体系
    八大数据结构分类
    servlet和jsp的区别
    Web前端和Web后端的区分
    (转)为什么JavaWeb放弃jsp,去做前后端分离
    面向对象的三大基本特征和五大基本原则
    (转)2019年给Java编程初学者的建议(附学习大纲)
  • 原文地址:https://www.cnblogs.com/Red-ButterFly/p/6906170.html
Copyright © 2011-2022 走看看