渐变文字 5 种特效(线性/彩虹流动/玻璃质感 CSS 源码)

CSS 许可:自研原创

5 种渐变文字特效源码:线性渐变、彩虹流动、双色对比、玻璃质感、火焰熔岩,纯 CSS background-clip 实现,适合标题与品牌字。

效果演示(真实可交互)

下方 5 行文字分别演示不同的渐变着色方式,其中彩虹流动渐变带有循环动画。悬停文字会轻微放大加亮,方便查看效果。

01 · 经典线性渐变

02 · 彩虹流动渐变

03 · 双色对比渐变

04 · 玻璃质感渐变

05 · 火焰熔岩渐变

完整代码

HTML 结构非常简单,每个文字元素一个类名:

<p class="g-txt g-linear">01 · 经典线性渐变</p>
<p class="g-txt g-rainbow">02 · 彩虹流动渐变</p>
<p class="g-txt g-split">03 · 双色对比渐变</p>
<p class="g-txt g-glass">04 · 玻璃质感渐变</p>
<p class="g-txt g-fire">05 · 火焰熔岩渐变</p>

核心 CSS:渐变文字的关键是把背景裁切到文字上,即 background-clip: text + -webkit-text-fill-color: transparent:

.g-txt {
  font-size: 34px;
  font-weight: 800;
  background: linear-gradient(90deg, #6c8cff, #b388ff);
  -webkit-background-clip: text;   /* 把背景裁剪成文字形状 */
  background-clip: text;
  -webkit-text-fill-color: transparent;  /* 文字本身透明,露出背景 */
  color: transparent;              /* 标准写法兜底 */
}

/* 彩虹流动:背景放大 300% 并循环移动 */
.g-rainbow {
  background: linear-gradient(90deg, #ff6b6b, #ffa94d, #ffe066, #51cf66, #339af0, #b388ff, #ff6b6b);
  background-size: 300% 100%;
  animation: gradmove 4s linear infinite;
}
@keyframes gradmove { to { background-position: 300% 0; } }

/* 双色对比:用 50% 色标一分为二 */
.g-split {
  background: linear-gradient(90deg, #43e97b 0%, #38f9d7 50%, #6c8cff 50%, #b388ff 100%);
}

参数说明

参数默认值说明
渐变方向90deg0deg 为从上到下,90deg 为从左到右
色标位置50%双色对比的分割点
background-size300%彩虹流动的背景放大倍数,越大流动越柔和
动画时长4s彩虹流动一个循环的时长
字体粗细800渐变文字建议粗体,效果更明显

兼容性与性能

常见问题

Q: 复制文字时变成透明看不见怎么办? 这是 text-fill-color: transparent 的正常表现,不影响实际文本内容,可以放心用于 SEO 标题。

Q: 想加描边和渐变同时存在? 先用 -webkit-text-stroke 描边,再叠加渐变裁剪层,两层结构即可实现渐变描边字。

Q: 渐变文字能加阴影吗? 直接加会被透明文字穿透,推荐用 filter: drop-shadow(),它会按文字的实际形状投影。

Q: 可以商用吗? 可以,粤喵自研原创组件,免费商用无需署名。

许可与来源

  • 许可证:自研原创 —— 粤喵自研原创,可免费用于个人与商业项目,无需署名。查看来源公示与许可清单
  • 来源:粤喵团队原创自研(从效果思路到代码实现均为独立完成,未直接复制第三方代码)
  • 首次发布:2026-09-01 · 最近更新:2026-09-01
  • 修改日志:2026-09-01 首次发布;2026-09-13 补充许可证与来源标注、复制按钮说明与法务页入口
  • 纠错:联系页面 / min@cactus.asia,2 个工作日内核实处理

常见问题

这个组件可以商用吗?

可以。本组件为粤喵自研原创,可免费用于个人和商业项目,无需署名。

浏览器兼容性如何?

支持所有现代浏览器(Chrome / Firefox / Safari / Edge 最新版本)。旧版 IE 不支持 CSS 动画相关特性。

怎么修改动画参数?

直接调整 CSS 中的 animation-duration(时长)、animation-timing-function(缓动曲线)等属性即可,代码中有注释说明。

✍️ 作者与审核