mix-blend-mode 利用混合模式让文字智能适配背景颜色

简介: 这篇文章介绍了CSS3属性mix-blend-mode的使用方法,该属性能够实现文字智能适配背景颜色的效果,其中包括文字镂空效果。文章详细解释了该属性的混合模式计算方式以及各种属性值的效果。

今天向大家推荐一个 CSS3 属性:mix-blend-mode,其中 mixblend 的中文意译均为混合,那么这个属性的作用直译过来就是混合模式。

文字智能适配背景颜色

  1. 这个效果就是在黑色背景中显示白色文字,在白色背景中显示黑色文字,而且是自动的:

    <style>
    .main {
      width: 600px;
      height: 200px;
      background: linear-gradient(45deg, #000 0, #000 50%, #fff 50%);
      position: relative;
      margin: 100px auto;
    }
    
    .main::before {
      content: '白雾茫茫丶';
      position: absolute;
      font-size: 50px;
      width: 100%;
      height: 100%;
      top: 40%;
      left: 20%;
      color: #fff;
      mix-blend-mode: difference;
      animation: move 3s infinite linear alternate;
    }
    
    @keyframes move {
      0% {
        transform: translateX(20%);
      }
    
      100% {
        transform: translateX(-20%);
      }
    }
    </style>
    <div class="main"></div>
    

    b97a2668b76edc25249f6b272cd03178.gif

我们可以发现,代码非常简单,关键是这个属性:mix-blend-mode: difference

  1. 这是为什么呢?经过一番资料查阅,设置了这个属性后,它是这样计算的:

    黑底白字:
    当前颜色:    255  255  255
    父元素:       0    0    0
    混合后的颜色:255   255  255
    
    白底黑字:
    当前颜色:    255  255  255
    父元素:      255  255  255
    混合后的颜色: 0    0    0
    

    由此可以得出结论:混合后的颜色 = 当前颜色 - 父元素背景色

实现文字镂空效果

<style>
  .parent {
    background-image: url("./images/1.jpg");
    width: 600px;
    height: 400px;
    position: relative;
    margin: 100px auto;
  }

  .parent .child {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-weight: 900;
    font-size: 50px;
    color: #000;
    background-color: #fff;
    mix-blend-mode: screen;
  }
</style>
<div class="parent">
  <div class="child">白雾茫茫丶</div>
</div>

cde513dc923e7d1193b2ef3d2bab4010.png

mix-blend-mode 其他属性

属性值 描述
normal 默认值,没有混合效果
multiply 正片叠底
screen 滤色
overlay 叠加
darken 变暗
lighten 变亮
color-dodge 颜色减淡
color-burn 颜色加深
hard-light 强光
soft-light 柔光
difference 差值
exclusion 排除
hue 色相
color 颜色
saturation 饱和度
luminosity 亮度

其它属性的效果,有兴趣的伙伴可以研究一下!

相关文章
|
移动开发 JavaScript 小程序
uView Tabbar 底部导航栏
uView Tabbar 底部导航栏
569 0
|
2月前
|
人工智能 安全 API
身份证二、三要素实名认证API文档介绍
身份证二、三要素实名认证API,通过姓名、身份证号及头像比对权威数据源,快速核验用户身份真实性。广泛应用于金融、政务、电商等场景,助力企业合规运营,防范冒用身份等风险,保障账户安全与业务可信。
|
安全 网络安全 数据库
2.11 快卫⼠RDP远程桌面保护绕过
2.11 快卫⼠RDP远程桌面保护绕过
344 0
|
缓存 应用服务中间件 nginx
Web服务器的缓存机制与内容分发网络(CDN)
【8月更文第28天】随着互联网应用的发展,用户对网站响应速度的要求越来越高。为了提升用户体验,Web服务器通常会采用多种技术手段来优化页面加载速度,其中最重要的两种技术就是缓存机制和内容分发网络(CDN)。本文将深入探讨这两种技术的工作原理及其实现方法,并通过具体的代码示例加以说明。
1100 1
|
监控 JavaScript 前端开发
如何检测和解决 JavaScript 中内存泄漏问题
【10月更文挑战第25天】解决内存泄漏问题需要对代码有深入的理解和细致的排查。同时,不断优化和改进代码的结构和逻辑也是预防内存泄漏的重要措施。
411 6
|
存储 安全 网络安全
匿名 FTP
【8月更文挑战第24天】
542 0
|
JavaScript 前端开发 搜索推荐
【Vue 2】一个功能强大OA办公系统,开源且免费!!
【Vue 2】一个功能强大OA办公系统,开源且免费!!
|
监控 前端开发 关系型数据库
【最简洁】一句CSS3代码实现不规则自定义背景图拼接样式,多用于异形弹窗背景图
【最简洁】一句CSS3代码实现不规则自定义背景图拼接样式,多用于异形弹窗背景图

热门文章

最新文章