Html 如何从外部样式表渐变填充SVG?

Html 如何从外部样式表渐变填充SVG?,html,css,svg,radial-gradients,Html,Css,Svg,Radial Gradients,我喜欢外部样式表,希望能够通过外部样式表为任何SVG图形设置样式。我可以为SVG徽标声明单色笔划和填充,但我需要渐变填充。我尝试了一个视图,但无法正常工作。有人能帮我弄明白怎么做吗 考虑到我讨论的是外部代码,而不是内联代码,我不确定如何放置代码片段,因此这里有一个指向所讨论的SVG徽标及其匹配的外部样式表的链接 我试图在SVG(PNG)中重新创建的实际徽标: SVG徽标: 样式表: 这里有一些注释,以确保我不会丢失我试图实现的渐变代码,所以很抱歉CSS文件太乱了。一旦我能让它正常工作,我就不需

我喜欢外部样式表,希望能够通过外部样式表为任何SVG图形设置样式。我可以为SVG徽标声明单色笔划和填充,但我需要渐变填充。我尝试了一个视图,但无法正常工作。有人能帮我弄明白怎么做吗

考虑到我讨论的是外部代码,而不是内联代码,我不确定如何放置代码片段,因此这里有一个指向所讨论的SVG徽标及其匹配的外部样式表的链接

我试图在SVG(PNG)中重新创建的实际徽标:

SVG徽标:

样式表:

这里有一些注释,以确保我不会丢失我试图实现的渐变代码,所以很抱歉CSS文件太乱了。一旦我能让它正常工作,我就不需要在那里记笔记了


那么如何实现这一点呢?

将渐变添加到SVG文件中,并从CSS更改停止颜色:

#颜色1{
停止颜色:红色
}
#颜色2{
停止颜色:蓝色
}

将渐变添加到SVG文件,并从CSS更改停止颜色:

#颜色1{
停止颜色:红色
}
#颜色2{
停止颜色:蓝色
}


SVG元素不支持后台CSS属性。您需要通过SVG模式执行此操作。SVG元素不支持后台CSS属性。您需要通过SVG模式来完成。非常好!但是,除此之外,目前还没有办法在CSS文件外部控制SVG的大小和颜色?我不确定您的意思,但当然您可以从extenal样式表更改SVG的颜色。SVG的大小通常是由它的容器改变的,所以这些样式。。。如果我完全错了,请考虑打开另一个问题,并附上一个简化的测试用例或小提琴……我的意思是在外部文件中完全指定SVG之外的渐变,这样我就可以将基本形状传送到任何地方,并改变每个实例只使用一个外部表单的颜色和颜色。我可能希望我的标志在一页上有6个彩色站,在另一页上可能只有2个。我可能希望渐变的类型或起点和终点(如顶部或底部、左侧或右侧、哪个角等)在许多不同的地方都不同。如何在SVG文件的另一端完成这项工作?好的,现在我明白了。我用第二个例子更新了我的答案。这看起来太棒了!因此,如果我在SVG文件中有徽标的通用路径,并链接到它的外部CSS文件,比如说,有一个“紫色到黄色的径向渐变左上角”SVG文件和一个“绿色到蓝色的从左到右”SVG文件,我就可以在SVG的CSS中指定调用我当时想要的特定渐变SVG?比如,构建几个自定义的渐变SVG文件,并在我想要的地方调用它们?非常好!但是,除此之外,目前还没有办法在CSS文件外部控制SVG的大小和颜色?我不确定您的意思,但当然您可以从extenal样式表更改SVG的颜色。SVG的大小通常是由它的容器改变的,所以这些样式。。。如果我完全错了,请考虑打开另一个问题,并附上一个简化的测试用例或小提琴……我的意思是在外部文件中完全指定SVG之外的渐变,这样我就可以将基本形状传送到任何地方,并改变每个实例只使用一个外部表单的颜色和颜色。我可能希望我的标志在一页上有6个彩色站,在另一页上可能只有2个。我可能希望渐变的类型或起点和终点(如顶部或底部、左侧或右侧、哪个角等)在许多不同的地方都不同。如何在SVG文件的另一端完成这项工作?好的,现在我明白了。我用第二个例子更新了我的答案。这看起来太棒了!因此,如果我在SVG文件中有徽标的通用路径,并链接到它的外部CSS文件,比如说,有一个“紫色到黄色的径向渐变左上角”SVG文件和一个“绿色到蓝色的从左到右”SVG文件,我就可以在SVG的CSS中指定调用我当时想要的特定渐变SVG?比如,构建几个定制的渐变SVG文件,并在需要的地方调用它们?