我需要帮助最小化SVG渐变实例

我需要帮助最小化SVG渐变实例,svg,Svg,我有一个我在Illustrator中创建的徽标,我正在手动将其逐块制作成SVG文件。这是一个非常详细的插图,有很多分层和混合,所以我有很多重复的渐变,只是gradientTransform属性的值不同 这里有一个例子 <radialGradient id="sil_bor_clr_layer_01" cx="145.8111" cy="91.9766" r="5.5753" gradientTransform="matrix(1.665142e-02 -0.9999 1.0812 1.80

我有一个我在Illustrator中创建的徽标,我正在手动将其逐块制作成SVG文件。这是一个非常详细的插图,有很多分层和混合,所以我有很多重复的渐变,只是
gradientTransform
属性的值不同

这里有一个例子

<radialGradient id="sil_bor_clr_layer_01" cx="145.8111" cy="91.9766" r="5.5753" gradientTransform="matrix(1.665142e-02 -0.9999 1.0812 1.800584e-02 43.939 236.1114)" gradientUnits="userSpaceOnUse">
    <stop  offset="0" style="stop-color:#FFFFFF"/>
    <stop  offset="0.6007" style="stop-color:#DBE2E8"/>
    <stop  offset="1" style="stop-color:#C0CDD8"/>
</radialGradient>

<radialGradient id="sil_bor_clr_layer_02" cx="121.087" cy="94.1915" r="6.7356" gradientTransform="matrix(-0.1704 -0.9854 0.917 -0.1586 55.3406 228.4433)" gradientUnits="userSpaceOnUse">
    <stop  offset="0" style="stop-color:#FFFFFF"/>
    <stop  offset="0.6007" style="stop-color:#DBE2E8"/>
    <stop  offset="1" style="stop-color:#C0CDD8"/>
</radialGradient>

<radialGradient id="sil_bor_clr_layer_03" cx="98.1764" cy="102.6783" r="7.6206" gradientTransform="matrix(-0.5989 -0.8008 0.6381 -0.4771 91.458 230.294)" gradientUnits="userSpaceOnUse">
    <stop  offset="0" style="stop-color:#FFFFFF"/>
    <stop  offset="0.6007" style="stop-color:#DBE2E8"/>
    <stop  offset="1" style="stop-color:#C0CDD8"/>
</radialGradient>

我还有另外21个元素使用相同的渐变,这意味着为了定义
gradientTransform
属性,我必须再定义21次


有没有一种方法可以让我使用渐变在SVG元素上定义
gradientTransform
,这样我就可以定义它们一次?这些特殊的元素有一个颜色层,阴影层和高光层,这将是60多个相同的东西,这是非常荒谬的实例。我目前正在Angular中进行此操作,因此我知道我可以制作组件并导出一些常量来处理此问题,但如果可能,我更希望保留svg和css。

您可以使用href属性引用模板渐变

如果你想支持Safari,你需要使用xlink:href,因为Safari还不支持bare href

头部、身体、svg{
宽度:100%;
身高:100%;
}

您可以使用href属性引用模板渐变

如果你想支持Safari,你需要使用xlink:href,因为Safari还不支持bare href

头部、身体、svg{
宽度:100%;
身高:100%;
}