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

如何计算带指定透明度的颜色,使其在白色背景匹配目标不透明色

白色背景下透明色与不透明目标色视觉一致的计算方案

需求明确:给定一个不透明的CSS目标颜色(例如purple),以及指定的透明度值,需要找到对应的原始颜色,让这个原始颜色加上指定透明度后,在白色背景上显示的视觉效果和目标不透明颜色完全一致。

示例场景:

  • 第一个方块是不透明的目标色,完全遮挡后方内容
  • 第二个方块设置了80%透明度,后方黑色条部分可见,但需要让它的视觉颜色和第一个方块完全一致

当前困境:能推导半透明色在白色背景上最终呈现色的正向公式,但无法逆向计算——已知目标色和透明度,求对应的半透明原始色。现有代码仅对单一测试颜色有效,更换其他颜色后失效。

代码示例

CSS 代码

:root {
  --base-color: #dbe9f8;
/*   --base-color: #59d98f; */
/*   --base-color: blue; */
}

html, body {
  height: 100vh;
}

div {
  height: 100px;
  width: 100px;
  position: relative;
  z-index: 2;
}

.original {
  background: var(--base-color);  
}

.translucent {
  --color: var(--base-color);
  --opacity: 0.8;
  background: rgb(from var(--color) min(255, max(0, calc((r - (1 - var(--opacity)) * 255) / var(--opacity)))) min(255, max(0, calc((g - (1 - var(--opacity)) * 255) / var(--opacity)))) min(255, max(0, calc((b - (1 - var(--opacity)) * 255) / var(--opacity)))) / var(--opacity));
}

.bar {
  width: 100px;
  height: 10px;
  background: black;
  position: relative;
  top: 50px;
  z-index: 1;
}

HTML 代码

<div class="original"></div>
<div class="bar"></div>
<div class="translucent"></div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 19:37:06