CSS radial-gradient()
函数用来创建一个径向渐变。一个渐变数据类型<gradient>实际上是一张图片,它由两种或更多的颜色通过平滑渐进过渡形成。
径向渐变是指从起点到终点颜色从内到外进行的圆形渐变。例如下面是一些径向渐变的示意图:
创建径向渐变
假如你使用黄色、绿色和紫色3种颜色来制作一个径向渐变,并且没有指定任何的color stop和尺寸大小等,那么得到的效果如下图所示:
radial-gradient(yellow, #009966, purple);
当没有指定径向渐变的形状和尺寸时,默认使用椭圆形渐变。如果你要使用圆形渐变效果,可以使用关键字:circle
。
radial-gradient(circle, yellow, #009966, purple);
和线性渐变相同,你可以控制每种颜色的起始位置和结束位置。例如下面的例子使绿色从20%开始:
radial-gradient(yellow, #009966 20%, purple);
如果你要制作颜色键没有平滑过渡的效果,可以使用下面的CSS规则:
radial-gradient(yellow, yellow 20%, #009966 20%, #009966 50%, purple 50%, purple);
控制径向渐变的位置和尺寸
径向渐变允许你指定渐变的形状(圆形或椭圆形)和大小(最近端,最近角,最远端,最远角,包含或覆盖 (closest-side, closest-corner, farthest-side, farthest-corner, contain or cover))。
要设置径向渐变的中心位置,可以在关键字之后设置一个位置,这和设置background-position是类似的。
例如,要想将径向渐变的中心点设置在0% 0%
的位置(默认径向渐变的中心点位置在50% 50%的位置),可以使用下面的CSS规则:
radial-gradient(at 0% 0%, yellow, #009966, purple);
得到的效果如下图所示:
如果你想制作一个圆形的径向渐变,并且中心点位置位于左侧边的50%处,那么可以使用下面的规则:
radial-gradient(circle at 0% 50%, yellow, #009966, purple);
你还可以控制径向渐变的尺寸大小。例如将一个圆形的径向渐变设置为100像素大小。
radial-gradient(100px circle at 0% 50%, yellow, #009966, purple);
如果是设置椭圆形的渐变尺寸,则需要给出两个长度:第一个指定水平方向的尺寸,第二个指定垂直方向的尺寸。例如:
radial-gradient(200px 100px ellipse at 25% 50%, yellow, #009966, purple);
官方语法
radial-gradient()
径向渐变的官方语法为:
<radial-gradient> = radial-gradient( [ [ circle || <length> ] [ at <position> ]? , | [ ellipse || [ <length> | <percentage> ]{2} ] [ at <position> ]? , | [ [ circle | ellipse ] || <extent-keyword> ] [ at <position> ]? , | at <position> , ]? <color-stop> [ , <color-stop> ]+ ) /* 其中 */ <extent-keyword> = closest-corner | closest-side | farthest-corner | farthest-side <color-stop> = <color> [ <percentage> | <length> ]?
参数:
<position>
:主要用来定义径向渐变的圆心位置。此值类似于CSS中background-position属性,用于确定元素渐变的中心位置。如果这个参数省略了,其默认值为“center”。其值主要有以下几种:<length>
:用长度值指定径向渐变圆心的横坐标或纵坐标。可以为负值。<percentage>
:用百分比指定径向渐变圆心的横坐标或纵坐标。可以为负值。left
:设置左边为径向渐变圆心的横坐标值。center
:设置中间为径向渐变圆心的横坐标值或纵坐标。right
:设置右边为径向渐变圆心的横坐标值。top
:设置顶部为径向渐变圆心的纵标值。bottom
:设置底部为径向渐变圆心的纵标值。
<shape>
:主要用来定义径向渐变的形状。其主要包括两个值“circle”和“ellipse”。<size>
:主要用来确定径向渐变的结束形状大小。如果省略了,其默认值为“farthest-corner”。可以给其显式的设置一些关键词,主要有:closest-side
:指定径向渐变的半径长度为从圆心到离圆心最近的边。closest-corner
:指定径向渐变的半径长度为从圆心到离圆心最近的角。farthest-side
:指定径向渐变的半径长度为从圆心到离圆心最远的边。farthest-corner
:指定径向渐变的半径长度为从圆心到离圆心最远的角
<color-stop>
:径向渐变线上的停止颜色,类似于线性渐变的<color-stop>。径向渐变的为渐变线从中心点向右扩散。其中0%表示渐变线的起始点,100%表示渐变线的与渐变容器相交结束的位置。而且其颜色停止可以定义一个负值。
在线演示
radial-gradient(closest-side circle, yellow, #009966, purple);
radial-gradient(closest-side ellipse, yellow, #009966, purple);
浏览器支持
CSS3线性渐变的浏览器兼容性列表如下: