我有一个svg,我需要用渐变填充它,css是由脚本添加的,如果你使用单一的RGB颜色,它都可以工作,但使用渐变,SVG会导致白色背景。
脚本之后的结果代码:
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
id="Livello_1" x="0px" y="0px" viewBox="0 0 70 70"
style="enable-background:new 0 0 70 70;width: 50px; height: 50px;"
xml:space="preserve">
<defs>
<lineargradient id="grC29M" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(88,88,88);stop-opacity:1"></stop>
<stop offset="100%" style="stop-color:rgb(255,255,255);stop-opacity:1"></stop>
</lineargradient>
</defs>
<path class="st0" d="......" style="fill: url("#grC29M")">
</svg>
谢谢!
4条答案
按热度按时间gblwokeq1#
我有一个非常奇怪的错误 chrome 时,这个梯度不工作
直到我将id从
paint0_linear
和paint1_linear
更改为gradient1
和gradient2
。这是一个奇怪的问题,但也许这会帮助一些人。
a14dhokn2#
因为你没有提供路径的d属性,我用rect代替了它。
kfgdxczn3#
除了其他答案,在我的例子中,我使用了
gradientUnits
,如下所示:它必须正确地大写(大写“U”),就像你对“linearGradient”大写“G”一样。
ruarlubt4#
这是因为在DOM(website)中有多个svg示例,所以每个示例都使用相同的id属性。例如:
id=“grC 29 M”在原始问题中。
,id的重复导致了意想不到的行为。我相信这和下面的@cuddlemeister答案起作用的原因是一样的。看起来他改变了其中一个示例的id,因为没有id的重复,svg最终渲染得很好。
在某些情况下,如果svg的第一个示例没有呈现,而是出现在dom中,那么我也可以看到这个问题,但是在悬停或单击时,如果第一个示例呈现,那么甚至svg的第二个示例也呈现