Skip to content

CSS3 中的渐变(Gradients)是用纯 CSS 创建平滑过渡的颜色变化效果的强大工具。它们使得网页开发者能够不依赖于图像来实现复杂的视觉效果。CSS3 支持两种主要的渐变类型:线性渐变(Linear Gradients)和径向渐变(Radial Gradients)。

1. 线性渐变(Linear Gradient)

线性渐变在一条直线上从一个颜色平滑过渡到另一个颜色。你可以控制渐变的方向、颜色停止点和颜色过渡。

基本语法:

css
background: linear-gradient(direction, color-stop1, color-stop2, ...);

示例:

css
/* 从顶部到底部的渐变 */
background: linear-gradient(to bottom, red, yellow);

/* 从左上角到右下角的渐变 */
background: linear-gradient(to bottom right, red, blue);

/* 带有多个颜色停止点的渐变 */
background: linear-gradient(to right, red, yellow 30%, green 60%, blue);

2. 径向渐变(Radial Gradient)

径向渐变从一个中心点向外扩展,创建一个圆形或椭圆形的渐变效果。你可以指定渐变的形状、大小和颜色停止点。

基本语法:

css
background: radial-gradient(shape size at position, color-stop1, color-stop2, ...);

示例:

css
/* 默认是圆形渐变 */
background: radial-gradient(red, yellow, green);

/* 椭圆形渐变 */
background: radial-gradient(ellipse, red, yellow, green);

/* 指定渐变的中心位置 */
background: radial-gradient(circle at center, red, yellow, green);

/* 指定渐变的大小 */
background: radial-gradient(circle at center, red, yellow, green);

3. 颜色停止点(Color Stops)

颜色停止点指定了颜色在渐变中的特定位置。你可以使用百分比或绝对长度来定义这些点。

示例:

css
/* 在25%处变为黄色,在50%处变为绿色,在75%处变为蓝色 */
background: linear-gradient(to right, red 25%, yellow 50%, green 75%, blue);

4. 重复渐变(Repeating Gradients)

CSS3 还支持重复渐变,允许你创建重复的渐变图案。

线性重复渐变:

css
background: repeating-linear-gradient(to right, red, yellow 10%, red 20%);

径向重复渐变:

css
background: repeating-radial-gradient(circle at center, red, yellow 10%, red 20%);

实例

下面是一个示例,展示了如何使用不同的渐变类型和属性:

html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 渐变示例</title>
<style>
    .linear-gradient-box {
        width: 300px;
        height: 150px;
        background: linear-gradient(to right, red, yellow, green, blue);
        border: 1px solid #000;
        margin-bottom: 20px;
    }
    .radial-gradient-box {
        width: 300px;
        height: 150px;
        background: radial-gradient(circle, red, yellow, green);
        border: 1px solid #000;
        margin-bottom: 20px;
    }
    .repeating-gradient-box {
        width: 300px;
        height: 150px;
        background: repeating-linear-gradient(45deg, red, yellow 10%, green 20%);
        border: 1px solid #000;
        margin-bottom: 20px;
    }
</style>
</head>
<body>
    <div class="linear-gradient-box">线性渐变</div>
    <div class="radial-gradient-box">径向渐变</div>
    <div class="repeating-gradient-box">重复渐变</div>
</body>
</html>

在这个示例中,我们创建了三个不同的盒子,每个盒子展示了一种不同的渐变效果:线性渐变、径向渐变和重复渐变。这些功能强大的CSS3渐变特性允许开发者在网页设计中创造出丰富多彩的视觉效果。