Tailwind CSS 渐变

背景渐变,是提升网页现代感与科技感的核心技巧之一。就拿咱们绿叶网来说,导航、文章、按钮等很多地方都用到了背景渐变。

Tailwind CSS 定义渐变

在 Tailwind CSS 中,实现一个背景渐变必须具备以下 2 条件:

  1. 定义渐变方向。
  2. 定义颜色节点。

语法:

bg-linear-to-{方向}
from-{起点颜色} to-{终点颜色}

说明:

其中,常用的渐变相关类名如下表所示。

“渐变” 类名
类名 说明
bg-linear-to-t 从下往上渐变
bg-linear-to-tr 从左下往右上渐变
bg-linear-to-r 从左往右渐变
bg-linear-to-br 从左上往右下渐变
bg-linear-to-b 从上往下渐变
bg-linear-to-bl 从右上往左下渐变
bg-linear-to-l 从右往左渐变
bg-linear-to-tl 从右下往左上渐变

示例 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">
    <div class="w-64 h-32 bg-linear-to-r from-red-500 to-blue-500">
    </div>
</body>
</html>

页面效果如下图所示。

Tailwind CSS 双色渐变

分析:

对于背景渐变,我们需要定义 3 个类才行。在这个例子中:

  • bg-linear-to-r:定义方向是 “从左往右(to right)”。
  • from-red-500:定义起点颜色是 “red-500”。
  • to-blue-500:定义终点颜色是 “blue-500”。

Tailwind CSS 三色渐变

很多时候,双色渐变会显得有些单调。如果想要打造更加梦幻、炫酷的三色渐变效果(例如经典的 “极光” 或 “晚霞” 渐变),我们可以在中间插入一个过渡色。

在 Tailwind CSS 中,我们可以使用 “via-*” 相关类名来定义三色渐变的中间色。

语法:

via-{颜色}-{色阶}

说明:

“颜色” 是颜色的英文名,比如 red(红)、blue(蓝)、green(绿)、gray(灰)等。

“色阶” 取值范围通常是 50~950。值越小,颜色越浅;值越大,颜色越深。一般来说,500 是最标准的基础色。

示例 2:三色渐变

<!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">
    <div class="w-64 h-32 bg-linear-to-r from-indigo-500 via-purple-500 to-pink-500">
    </div>
</body>
</html>

页面效果如下图所示。

Tailwind CSS 三色渐变

Tailwind CSS 线性渐变

Tailwind 的原生渐变系统(from-*, via-*, to-*)在底层机制上有一个硬性限制:它最多只能支持 3 种颜色的过渡(即一个起点、一个中点、一个终点)。

如果想要实现更多色的渐变(比如彩虹渐变),我们是无法使用 “via-” 来强行塞入更多颜色的,比如下面这种写法是无效的。

class="from-red-500 via-orange-500 via-yellow-500 to-purple-500"

在 Tailwind 中,我们可以使用 “bg-[linear-gradient()]” 这种任意值的方式来实现线性渐变。

语法:

bg-[linear-gradient()]

说明:

中括号 “[]” 内部是一个 linear-gradient() 函数。

示例 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">
    <div class="w-64 h-32 bg-[linear-gradient(to_right,red,orange,yellow,green,blue,indigo,violet)]">
    </div>
</body>
</html>

页面效果如下图所示。

Tailwind CSS 彩虹渐变

分析:

小伙伴们特别要注意一下 “to_right” 的写法,“to” 与 “right” 之间是一个下划线(_),而不是一个空格。

常见问题

1. 为什么我写了 from-red-500 to-blue-500,但是背景却完全没有变色呢?

这是初学者最容易犯的错误之一。很多小伙伴只记得写 “起点色” 和 “终点色”,却忘记写渐变方向了。

如果没有 “bg-linear-to-*”(比如 bg-linear-to-r)作为前提,此时浏览器根本不知道这是一个渐变背景。因此小伙伴们一定要记住:“方向 + 颜色”,两者缺一不可。

2. 我可以只写 from,而不写 to 吗?

可以的。在 Tailwind CSS 中,如果我们只写 from-* 而不写 to-*,比如:

from-green-500

此时渐变会自动从绿色平滑过渡到 “透明(transparent)”。这种效果在制作图片底部的遮罩层时非常有用。

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号