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

如何为文字添加彩虹渐变效果?现有代码失效求助

复现文字渐变效果解决方案

文字渐变效果示例

如何复现上述文字渐变效果?我尝试了以下代码,但文字仅显示为白色:

原代码

CSS

h1 {
    background-image: var(--rainbow-gradient,#fff);
    background-size: 100%;
    background-repeat: repeat;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
    filter: drop-shadow(0 0 2rem #000);
    text-shadow: none!important;
}

HTML

<H1>Hello world</H1>

问题原因

代码中使用了var(--rainbow-gradient,#fff)作为背景图,但CSS变量--rainbow-gradient未定义,浏览器自动 fallback 到默认值#fff白色,导致文字仅显示白色。

修正方案

方案1:定义CSS渐变变量

先在全局:root中定义渐变变量,再引用:

:root {
  /* 可根据示例图调整渐变颜色、角度 */
  --rainbow-gradient: linear-gradient(90deg, #ff4d4d, #ffb84d, #ffff4d, #4dff4d, #4dffff, #4d4dff, #b84dff, #ff4dcc);
}

h1 {
  background-image: var(--rainbow-gradient, #fff);
  background-size: 100%;
  background-repeat: repeat;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  -moz-background-clip: text;
  -moz-text-fill-color: transparent;
  filter: drop-shadow(0 0 2rem #000);
  text-shadow: none !important;
}
<h1>Hello world</h1>

方案2:直接使用渐变值

不需要变量的话,直接把渐变写在background-image里:

h1 {
  background-image: linear-gradient(90deg, #ff4d4d, #ffb84d, #ffff4d, #4dff4d, #4dffff, #4d4dff, #b84dff, #ff4dcc);
  background-size: 100%;
  background-repeat: repeat;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  -moz-background-clip: text;
  -moz-text-fill-color: transparent;
  filter: drop-shadow(0 0 2rem #000);
  text-shadow: none !important;
}
<h1>Hello world</h1>

说明

-webkit-background-clip: text和-webkit-text-fill-color: transparent是实现文字渐变的核心属性,前者将背景裁剪到文字区域,后者把文字颜色设为透明,让背景渐变透出来。调整渐变的颜色、角度或background-size可以匹配示例图的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 04:40:15