SVG 径向渐变
SVG 径向渐变 - <radialGradient>
<radialGradient>
元素用于定义径向渐变(从一种颜色到另一种颜色、从一个方向到另一个方向的圆形过渡)。
渐变定义放在 <defs>
或 <svg>
元素中。<defs>
元素是“定义”的缩写,包含特殊元素(如渐变)的定义。
每个渐变都必须有一个 id
属性来标识渐变。然后图形/图像指向要使用的渐变。
径向渐变 1
一个带有从红色到蓝色径向渐变的椭圆
这是 SVG 代码
示例
<svg height="150" width="400" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="grad1" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
<stop offset="0%" stop-color="red" />
<stop offset="100%" stop-color="blue" />
</radialGradient>
</defs>
<ellipse cx="100" cy="70" rx="85" ry="55" fill="url(#grad1)" />
</svg>
自己动手试一试 »
代码解释
<radialGradient>
元素的id
属性定义了渐变的唯一名称cx
和cy
属性定义了径向渐变结束圆的 x 和 y 位置fx
和fy
属性定义了径向渐变起始圆的 x 和 y 位置r
属性定义了径向渐变结束圆的半径- 渐变的颜色由两个或多个
<stop>
元素定义 <stop>
中的offset
属性定义了渐变停止点的位置<stop>
中的stop-color
属性定义了渐变停止点的颜色<ellipse>
元素的fill
属性将该元素指向“grad1”渐变
径向渐变 2
一个带有从红色到绿色再到蓝色径向渐变的椭圆
这是 SVG 代码
示例
<svg height="150" width="400" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="grad2" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
<stop offset="0%" stop-color="red" />
<stop offset="50%" stop-color="green" />
<stop offset="100%" stop-color="blue" />
</radialGradient>
</defs>
<ellipse cx="100" cy="70" rx="85" ry="55" fill="url(#grad2)" />
</svg>
自己动手试一试 »
径向渐变 3
一个带有从红色到蓝色径向渐变的椭圆(这里我们将结束圆的 x 和 y 位置设置为 25%)
这是 SVG 代码
示例
<svg height="150" width="400" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="grad3" cx="25%" cy="25%">
<stop offset="0%" stop-color="red" />
<stop offset="100%" stop-color="blue" />
</radialGradient>
</defs>
<ellipse cx="100" cy="70" rx="85" ry="55" fill="url(#grad3)" />
</svg>
自己动手试一试 »
径向渐变 4 - spreadMethod="reflect"
一个带有从红色到蓝色径向渐变和 spreadMethod="reflect"
的椭圆
这是 SVG 代码
示例
<svg height="150" width="400" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="grad4" cx="25%" cy="25%" spreadMethod="reflect">
<stop offset="0%" stop-color="red" />
<stop offset="100%" stop-color="blue" />
</radialGradient>
</defs>
<ellipse cx="100" cy="70" rx="85" ry="55" fill="url(#grad4)" />
</svg>
自己动手试一试 »
径向渐变 5 - spreadMethod="repeat"
一个带有从红色到蓝色径向渐变和 spreadMethod="repeat"
的椭圆
这是 SVG 代码
示例
<svg height="150" width="400" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="grad5" cx="25%" cy="25%" spreadMethod="repeat">
<stop offset="0%" stop-color="red" />
<stop offset="100%" stop-color="blue" />
</radialGradient>
</defs>
<ellipse cx="100" cy="70" rx="85" ry="55" fill="url(#grad5)" />
</svg>
自己动手试一试 »
径向渐变 6
定义另一个带有从红色到蓝色径向渐变的椭圆
这是 SVG 代码
示例
<svg height="150" width="400" xmlns="http://www.w3.org/2000/svg">
<defs>
<radialGradient id="grad6" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
<stop offset="0%" stop-color="red" stop-opacity="0" />
<stop offset="100%" stop-color="blue" stop-opacity="1" />
</radialGradient>
</defs>
<ellipse cx="100" cy="70" rx="85" ry="55" fill="url(#grad6)" />
</svg>
自己动手试一试 »
代码解释
<stop>
中的stop-opacity
属性定义了渐变停止点颜色的不透明度
SVG <radialGradient> 属性
Attribute | 描述 |
---|---|
id | 必需。定义 <radialGradient> 元素的唯一 id |
cx | 径向渐变结束圆的 x 位置。默认为 50% |
cy | 径向渐变结束圆的 y 位置。默认为 50% |
fr | 径向渐变起始圆的半径。默认为 0% |
fx | 径向渐变起始圆的 x 位置。默认为 50% |
fy | 径向渐变起始圆的 y 位置。默认为 50% |
r | 径向渐变结束圆的半径。默认为 50% |
spreadMethod | 定义渐变的扩散方法。可能的值:“pad”、“reflect”、“repeat”。默认为“pad” |
href | 定义对另一个 <radialGradient> 元素的引用,该元素将用作模板 |
gradientUnits | 定义 cx、cy、r、fx、fy、fr 的坐标系统。可能的值:“userSpaceOnUse”和“objectBoundingBox”。默认为“objectBoundingBox” |
gradientTransform | 定义对渐变坐标系统的额外变换 |