最浅显易懂的 CSS 之渐变 - 03

182 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

CSS 渐变 是由两种或多种颜色之间的渐进过渡组成。可以选择三种类型的渐变:线性 (由 [linear-gradient] 函数创建),径向(由 [radial-gradient] 函数创建) 和圆锥 (由 [conic-gradient] 函数创建)。还可以使用 [repeating-linear-gradient] 和 [repeating-radial-gradient]函数创建重复渐变。

由于渐变是动态生成的,因此它们可以消除对传统用于实现类似效果的栅格图像文件的需求。 此外,由于渐变是由浏览器生成的,因此在放大时它们看起来比栅格图像更好,并且可以动态调整大小。

在开发过程中,线性渐变是使用最多的,也是比较简单的,下面我们将从线性渐变开始了解渐变怎么去使用。

1. 线性渐变

线性渐变创建了一条沿直线前进的颜色带。

  • 基础线性渐变

要创建最基本的渐变类型,只需指定两种颜色即可

.box {
  background: linear-gradient(blue, pink);
}

image.png

  • 改变渐变方向

线性渐变默认是从上到下的方向,也可以自己指定一个值来改变渐变的方向。

.box {
   background: linear-gradient(to right, blue, pink);
}

image.png

  • 对角线渐变

渐变方向为从一个对角到另一个对角。

.box {
    background: linear-gradient(to bottom right, blue, pink);
}

image.png

  • 渐变角度

想要更精确地控制渐变的方向,可以给渐变设置一个具体的角度。

.box {
    background: linear-gradient(70deg, blue, pink);
}

image.png

0deg 代表渐变方向为从下到上, 90deg 代表渐变方向为从左到右,诸如此类正角度都属于顺时针方向。 而负角度意味着逆时针方向。

  • 使用多种颜色

无需局限于使用两种颜色,想使用多少种颜色都可以! 默认情况下,所设置颜色会均匀分布在渐变路径中。

.box {
    background: linear-gradient(red, yellow, blue, orange);
}

image.png

不想让你设置的颜色在默认位置终止,可以通过给每个颜色设置0,1%或者2%或者其他的绝对数值来调整它们的位置。如果你将位置设置为百分数, 0% 表示起始点, 而100%表示终点

.box {
 background: linear-gradient(to left, lime 28px, red 77%, cyan);
}

image.png

2. 径向渐变

径向渐变由它的中心定义,为了创建一个径向渐变,也必须至少定义两种颜色结点。颜色结点即你想要呈现平稳过渡的颜色。同时,也可以指定渐变的中心、形状(圆形或椭圆形)、大小。默认情况下,渐变的中心是 center(表示在中心点),渐变的形状是 ellipse(表示椭圆形),渐变的大小是 farthest-corner(表示到最远的角落)。

.box {
    background: radial-gradient(red, green, blue);
}

image.png

  • 改变渐变方向

线性渐变默认是从上到下的方向,也可以自己指定一个值来改变渐变的方向。

.box {
   background: linear-gradient(to right, blue, pink);
}

image.png

.box {
    background: radial-gradient(red 5%, green 15%, blue 60%);
}

image.png

  • 设置形状

shape 参数定义了形状。它可以是值 circle 或 ellipse。其中,circle 表示圆形,ellipse 表示椭圆形。默认值是 ellipse。

.box {
    background: radial-gradient(ellipse, red, yellow, green);
}

image.png

.box {
    background: radial-gradient(circle, red, yellow, green);
}

image.png

圆锥渐变用的不多,这里就不在解释了。