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

本文介绍了CSS3中的mix-blend-mode属性,如何用于文字智能适配背景颜色,实现文字镂空效果,并列举了不同模式下的工作原理和应用实例。
摘要由CSDN通过智能技术生成

今天向大家推荐一个 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>

在这里插入图片描述

我们可以发现,代码非常简单,关键是这个属性: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>

在这里插入图片描述

mix-blend-mode 其他属性

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白雾茫茫丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值