宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

渐变是从一种颜色逐渐蜕变到另一种颜色。径向渐变就是从起点到终点颜色从内到外进行圆形渐变,使用径向渐变可以实现一些漂亮的界面特效。

在这里,我将介绍在CSS中怎么实现径向渐变的方法。

径向渐变

径向渐变就是从一个点开始向外扩展为一个圆形或者椭圆,因此,径向渐变首先需要确定一个中心点,然后是大小和形状。径向渐变的颜色节点同线性渐变一样,是一个颜色列表。下面是径向渐变的语法:

<radial-gradient> = radial-gradient (
 [ [ <shape> || <size> ] [ at <position> ]? , |
  at <position>,
 ]?
 <color-stop> [ , <color-stop> ]+
)

  • []:表示可选;
  • |:或,表示多个选择其一;
  • ?:表示重复0次或多次;
  • {2}:重复两次;
  • +:重复1次或多次。

下面是径向渐变的一个例子:

background: radial-gradient(5em circle at top left, yellow, blue);

下面是我们来具体看看radial-gradient的参数的含义。

shape

shape可以是"circle"或"ellipse",决定了径向渐变最终形成的形状。如果该值被忽略,则存在:1)size为单个长度值,则shape为"circle";2)否则为"ellipse"。

size

决定渐变的大小。可以指定的具体的数值或者使用常量,circle和ellipse都支持的常量如下:

closest-side

从渐变的中心出发到最近的一条边的距离作为渐变的大小。如果是椭圆,则以两个方向的最短距离为准。

椭圆farthest-side

和closest-side类似,但是基于最远的边。

椭圆closest-corner

从渐变的中心出发到最近的一条角的距离作为渐变的大小。如果是椭圆,渐变的大小的横宽比例同指定"closest-side"时的横宽比例。

椭圆farthest-corner

和closest-corner类似,但是基于最远的角。如果是椭圆,渐变的大小的横宽比例同指定"farthest-side"时的横宽比例。

椭圆

除了使用以上的常量,size也可以指定精确值。如果shape被忽略,或者指定为circle,则size可以设置为:

<length>

length为单个数字,指定圆的半径。不允许负值。

如果shape被忽略,或者指定为ellipse,则size可以设置为:

[ <length> | <percentage> ]{2}

length为数字,percentage指定百分比,2个数值分别指定椭圆的宽和高。不允许负值。

position

决定渐变的中心。定义方法为:

x, y

x可选值:percentage、length、left、center、right;

y可选值:percentage、length、top 、center、bottom ;

如果忽略该值,则使用默认值center。

颜色节点(color-stop)

颜色节点放置在渐变线上,渐变线从渐变的中心开始向右扩展。0%位于渐变线的起点,100%位于渐变线的终点(与渐变边界相交)。颜色节点值可以为负,虽然渐变线的负值区域不能直接呈现,但却可能影响到非负区域的颜色。颜色节点的使用方法同线性渐变。

径向渐变实例

下面通过一些具体的例子来看径向渐变的效果:

径向渐变

以下三种方式都能达到上面的效果:

background: radial-gradient(#ff58bc, #00702c);

radial-gradient(ellipse at center, #ff58bc 0%, #00702c 100%);

radial-gradient(farthest-corner at 50% 50%, #ff58bc, #00702c);

径向渐变

background: radial-gradient(circle, #ff58bc, #00702c);

径向渐变

background: radial-gradient(farthest-side at left bottom, #ff58bc, #ffe509 50px, #00702c)

径向渐变

以下两种方式都能达到上面的效果:

background: radial-gradient(closest-side at 20px 30px, #ff58bc, #ffe509, #00702c)

background: radial-gradient(20px 30px at 20px 30px, #ff58bc, #ffe509, #00702c)

径向渐变

以下两种方式都能达到上面的效果:

background: radial-gradient(closest-side circle at 20px 30px, #ff58bc, #ffe509, #00702c)

background: radial-gradient(20px 20px at 20px 30px, #ff58bc, #ffe509, #00702c)

重复径向渐变

类似于重复线性渐变,径向渐变也有自己的重复版本repeating-radial-gradient,使用方式也是和重复线性渐变类似的。

重复径向渐变

background: repeating-radial-gradient(#ff58bc, #ffe509 20px, #00702c 40px)

重复径向渐变

background: repeating-radial-gradient(circle closest-side at 20px 30px, #ff58bc, #ffe509, #00702c 100%, #ffe509 150%, #ff58bc 200%)

条纹背景

使用径向渐变同样可以创建条纹背景,方法和线性渐变类似。

background: repeating-radial-gradient(#00702c, #00702c 10px, #ffe509 10px, #ffe509 20px))

background: repeating-radial-gradient(circle at center bottom, #00a340, #00a340 20px, #d8ffe7 20px, #d8ffe7 40px)

background: repeating-radial-gradient(ellipse at left top, #ffe509, #ffe509 15px, #ff58bc 15px, #ff58bc 30px)