原生 CSS 实现渐变文字,需要使用 background-image、background-clip 等属性来完成,而这些属性本身是比较复杂的,很容易就忘记了。而在 Tailwind CSS 中,我们只需要使用简单的几个类名即可轻松实现渐变文字。
Tailwind CSS 渐变文字语法
在 Tailwind CSS 中,实现渐变文字的核心逻辑是:先给盒子设置一个背景渐变色,然后把背景裁剪到文字上,最后让文字本身的颜色变为透明。
想要实现这个效果,我们需要配合使用以下 3 组类名:
1. 开启背景渐变
bg-gradient-to-r:从左到右渐变(最常用)。from-{颜色}:设置起始颜色。to-{颜色}:设置结束颜色。
2. 背景裁剪到文字
bg-clip-text:这是核心类名,它会把元素的背景仅保留在文字形状所在的区域。
3. 文字透明化
text-transparent:这也是必须的。只有把文字本身的颜色设为透明,底层的背景渐变色才能穿透显示出来。
Tailwind CSS 渐变文字示例
接下来,我们通过几个简单的例子来讲解一下如何使用 Tailwind CSS 来实现不同风格的渐变文字。
示例 1:双色渐变文字
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
<script src="https://unpkg.com/@tailwindcss/browser@4"></script>
</head>
<body class="p-10">
<h1 class="inline-block text-3xl font-black bg-gradient-to-r from-green-400 to-blue-500 bg-clip-text text-transparent">
绿叶网 - 为好教程,全力以赴
</h1>
</body>
</html>页面效果如下图所示。

分析:
首先,我们使用 bg-gradient-to-r from-green-400 to-blue-500 定义了一个从绿色到蓝色的水平背景。
然后,使用 bg-clip-text 来把背景剪成文字的形状。
最后,使用 text-transparent 把文字原本的黑色去掉。
这样,原本被文字遮挡的背景渐变色就完美呈现出来了。
示例 2:使用 “via” 实现三色渐变
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
<script src="https://unpkg.com/@tailwindcss/browser@4"></script>
</head>
<body class="p-10 bg-gray-900">
<h1 class="inline-block text-3xl font-extrabold bg-gradient-to-r from-purple-500 via-pink-500 to-orange-400 bg-clip-text text-transparent">
绿叶网 - 为好教程,全力以赴
</h1>
</body>
</html>页面效果如下图所示。

分析:
如果觉得两种颜色太单调,我们还可以使用 “via-{颜色}” 来增加一个中间过渡色。
在这个例子中,我们使用 from-purple-500、via-pink-500、to-orange-400 来实现了一个非常有冲击力的三色渐变效果。在深色背景(bg-gray-900)的衬托下,这种炫彩文字会显得非常有质感。
示例 3:悬停交互式渐变文字
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
<script src="https://unpkg.com/@tailwindcss/browser@4"></script>
</head>
<body class="p-10 bg-gray-900">
<a href="#" class="inline-block text-xl font-black bg-gradient-to-r from-cyan-400 to-blue-500 bg-clip-text text-transparent transition-all duration-300 hover:from-pink-500 hover:to-orange-400">
开始学习 →
</a>
</body>
</html>默认情况下,页面效果如下图 1 所示。当鼠标移上时,页面效果如下图 2 所示。


分析:
在实际项目中,渐变文字经常被用作按钮或超链接,我们需要在鼠标悬停时改变其颜色。
我们只需利用 Tailwind CSS hover: 状态修饰符(如 hover:from-pink-500 hover:to-orange-400),就能轻松实现鼠标移入时渐变色的切换。再加上 transition-all duration-300,则可以让颜色切换显得更加平滑自然。
示例 4:动态流光渐变文字
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
<script src="https://unpkg.com/@tailwindcss/browser@4"></script>
<style type="text/tailwindcss">
@theme {
/* 1. 定义背景位置移动的关键帧 */
@keyframes gradient-flow {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
/* 2. 绑定为名为 animate-gradient 的 Tailwind 动画类 */
--animate-gradient: gradient-flow 3s ease infinite;
}
</style>
</head>
<body class="p-10 bg-gray-900">
<h1 class="inline-block text-3xl font-black bg-gradient-to-r from-blue-500 via-green-500 to-blue-500 bg-[length:200%_auto] animate-gradient bg-clip-text text-transparent">
绿叶网 - 为好教程,全力以赴
</h1>
</body>
</html>页面效果如下图所示。

分析:
这里我们在颜色渐变上使用了一个小技巧:from-blue-500 via-green-500 to-blue-500,也就是首尾颜色是相同的。
然后结合 bg-[length:200%_auto](将背景宽度放大到2倍),当背景动画在 0% 和 100% 之间往返移动时,颜色的过渡会完全无缝衔接,视觉上就像是光芒在源源不断地流转。
常见问题
1. 渐变文字效果兼容性如何?所有浏览器上都支持吗?
bg-clip-text 在现代浏览器(Chrome、Edge、Safari、Firefox)中都有良好的支持。Tailwind CSS 会自动为你处理浏览器前缀(如 -webkit-background-clip),因此在绝大多数场景下,我们都可以放心使用。
2. 如果渐变文本很长,换行之后渐变效果看起来很奇怪怎么办?
当渐变文字折成多行时,浏览器默认会将整个文本块作为一个整体来应用渐变。这可能会导致某一行只显示深色,另一行只显示浅色。
解决办法:为文字添加 box-decoration-clone 类名。这个类名会让浏览器把每一行文本都当作独立的盒子来渲染,从而让每一行都能拥有完整的渐变过渡效果,视觉上会精致很多。
