You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS中mix-blend-mode应用于文本时失效的问题

解决mix-blend-mode: screen应用于文本无效果的问题

核心原因是文本默认的黑色在mix-blend-mode: screen模式下,和下方元素混合后不会产生"裁剪"视觉效果——黑色与任何颜色做screen运算,结果都是下方元素的原色,相当于文本完全"透"过去了,看不到文本形状的裁剪。而图片能生效是因为自身带有透明区域或非黑色像素,混合后能形成视觉对比。

可行解决方案

给文本元素设置黑色背景+白色文字,再配合mix-blend-mode: screen,就能实现类似图片的裁剪效果:

修改后的CSS代码

body {
  margin: 0;
}

div {
  height: 100vh;
}

img {
  position: absolute;
  width: 100%;
  height: 100%;
}

span {
  position: absolute;
  font-size: 200px;
  font-weight: bold; /* 可选,增强文本清晰度 */
  color: #fff; /* 白色文字 */
  background-color: #000; /* 黑色背景 */
}

.clip {
  mix-blend-mode: screen;
}

修改后的HTML代码

<div>
  <img src="https://images.unsplash.com/photo-1625252568254-256958377c1d?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=1500&q=80">
  <span class='clip'>Text</span>
</div>

原理说明

screen混合模式的运算逻辑是:1 - (1 - 上层像素值) * (1 - 下层像素值)

  • 文本的黑色背景区域:与下方图片混合后,结果等于图片本身的颜色,视觉上等同于透明
  • 文本的白色文字区域:与下方图片混合后,会保留图片对应位置的颜色,从而形成"文本裁剪背景"的视觉效果

内容的提问来源于stack exchange,提问作者Joy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:42:37