• CSS混合模式


    前面的话

      层叠上下文z-index只是解决两个元素覆盖,谁离用户更近的问题。而CSS混合模式,则是处理两个元素覆盖部分如何混合的问题。如果了解photoshop的话,对这种现象应该不陌生。CSS3有两个与混合模式相关的属性:mix-blend-modebackground-blend-mode,本文将详细介绍CSS混合模式

    元素混合

      元素混合mix-blend-mode应用于两个元素之间的混合

    mix-blend-mode

    初始值: normal

    应用于: 所有元素

    继承性: 无

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

    兼容性: IE浏览器、android4.4-不支持,safari和IOS需要添加-webkit-前缀

      [注意]该元素会创建层叠上下文,z-index属性有效

    背景混合

      背景混合background-blend-mode应用于一个元素的多背景图或背景图与背景颜色之间的混合

    background-blend-mode

    初始值: normal

    应用于: 所有元素

    继承性: 无

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

    兼容性: IE浏览器、android4.4-不支持,safari和IOS需要添加-webkit-前缀

    隔离

      隔离isolation的作用是创建一个堆叠上下文stacking context,主要用于与mix-blend-mode属性一起使用时,将混合模式只应用于某一个元素或某一组元素

    isolation

    初始值: auto

    应用于: 所有元素

    继承性: 无

    值: auto | isolate(创建新的堆叠上下文) | initial | inherit | unset

    <style>
    body{background-color: gray;}
    .test1,.test2{display: inline-block; 100px;height: 100px;border:1px solid black;}
    .test2{isolation: isolate;}
    .in{ 50px;height: 50px;background-color: red;mix-blend-mode: screen;}
    </style>
    </head>
    <body>
    <div class="test1">
        <div class="in"></div>
    </div>
    <div class="test2">
        <div class="in"></div>
    </div>
    

      如果不使用isolation: isolate创建堆叠上下文,由于.test1.test2背景颜色透明,则.in会和<body>背景颜色混合,成为粉色。使用isolation: isolate后,.test2<body>中隔离出来,不与<body>的背景进行混合,从而保留其原先的红色

      [注意]由于isolation: isolate的作用就是创建堆叠上下文,所以只要能创建堆叠上下文,就可以实现隔离的效果,所以,类似地,relative、filter等样式也可以实现类似效果

  • 相关阅读:
    input、textarea 输入框IOS键盘顶起页面不反弹,Android手机隐藏掉input/textarea
    js调微信支付、支付宝支付
    axios封装
    h5 rem js
    h5 input输入框弹 键盘弹起再关掉,页面被顶起
    webpack vue-loader was used without the corresponding plugin. Make sure to include VueLoaderPlugin
    将url的查询参数解析成字典对象
    设计模式之桥接模式(Bridge)
    Google OKR 目标管理体系学习
    用EF6更新数据库时出现外键错误解决方式
  • 原文地址:https://www.cnblogs.com/xiaohuochai/p/6270139.html
Copyright © 2020-2023  润新知