渐变单位

gradientUnits 属性定义了用于渐变元素上指定属性的坐标系。

你可以将此属性与以下 SVG 元素一起使用

linearGradient

对于 <linearGradient>gradientUnits 定义了用于 x1y1x2y2 属性的坐标系。

userSpaceOnUse | objectBoundingBox
默认值 objectBoundingBox
可动画的
userSpaceOnUse

此值表示属性值是在当前用户坐标系中定义的。该用户坐标系是在引用渐变元素的时,在该元素(通过 fillstroke 属性引用渐变元素的元素)处存在的用户坐标系,然后应用 gradientTransform 属性指定的变换。百分比值相对于当前 SVG 视口的尺寸。

objectBoundingBox

此值表示属性的用户坐标系是使用应用渐变的元素的边界框建立的,然后应用 gradientTransform 属性指定的变换。

百分比值相对于对象的边界框。

使用此值且 gradientTransform 为单位矩阵时,线性渐变的法线在对象边界框空间中垂直于渐变向量(即,抽象坐标系,其中 (0,0) 位于对象边界框的左上角,(1,1) 位于对象边界框的右下角)。当对象的边界框不是正方形时,在对象边界框空间中最初垂直于渐变向量的渐变法线,在用户空间中相对于渐变向量可能不再垂直。如果渐变向量与边界框的某个轴平行,则渐变法线将保持垂直。这种变换是由于从边界框空间到用户空间应用了非均匀缩放变换。

radialGradient

对于 <radialGradient>gradientUnits 定义了用于 cxcyrfxfyfr 属性的坐标系。

userSpaceOnUse | objectBoundingBox
默认值 objectBoundingBox
可动画的
userSpaceOnUse

cxcyrfxfyfr 表示的值是在当前用户坐标系中定义的。该用户坐标系是在引用渐变元素的时,在该元素(通过 fillstroke 属性引用渐变元素的元素)处存在的用户坐标系,然后应用 gradientTransform 属性指定的变换。

objectBoundingBox

对于 <radialGradient>:属性 cxcyrfxfyfr 的用户坐标系是使用应用渐变的元素的边界框建立的(参见 Object bounding box units),然后应用 gradientTransform 属性指定的变换。使用此值且 gradientTransform 为单位矩阵时,径向渐变的圆环相对于对象边界框空间是圆形的(即,抽象坐标系,其中 (0,0) 位于对象边界框的左上角,(1,1) 位于对象边界框的右下角)。当对象的边界框不是正方形时,在对象边界框空间中概念上呈圆形的圆环,由于从边界框空间到用户空间应用了非均匀缩放变换,渲染时会呈椭圆形。

规范

规范
Scalable Vector Graphics (SVG) 2
# LinearGradientElementGradientUnitsAttribute
Scalable Vector Graphics (SVG) 2
# RadialGradientElementGradientUnitsAttribute

浏览器兼容性

svg.elements.linearGradient.gradientUnits

svg.elements.radialGradient.gradientUnits