我试过设置笔划的颜色。它可以用linearGradient
来工作,但不能用solidColor
来工作:
<svg class="svg_defs" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="color_1">
<stop offset="0" stop-color="red" stop-opacity="1"/>
</linearGradient>
<solidColor id="color_2" solid-color="blue" solid-opacity="1"/>
<linearGradient id="half">
<stop offset="50%" stop-color="green" stop-opacity="0.5"/>
<stop offset="50%" stop-color="green" stop-opacity="0"/>
</linearGradient>
</defs>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-2 -2 101 101" width="50">
<rect x="0" width="49%" height="99%" fill="url(#half)" stroke-width="2" stroke="url(#color_1)"/>
<rect x="50%" width="49%" height="99%" fill="url(#half)" stroke-width="2" stroke="url(#color_2)"/>
</svg>
引用
rect
的color_1
正在工作,但引用color_2
的第二个不工作。即使是example on w3.org也不起作用。链接应该以红色显示表单。在Firefox、Chrome和Safari中会发生(或不会发生)。有什么东西丢了吗?
试试看:jsFiddle
最佳答案
solidColor不是SVG 1.1的一部分,它是svg1.2tiny的一部分,并以一种稍微改变和不向后兼容的方式被提议成为即将到来的SVG 2规范的一部分。
我有一个Firefox的patch版本,它将实现solidColor,但是唯一支持它的UA是现在已经过时的Opera版本12。
solidColor似乎没有必要,因为它可以通过一个单站渐变或CSS变量进行模拟。如果你能说服其他一些ua考虑实现它,我的Firefox补丁可以登陆。