我试过设置笔划的颜色。它可以用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>

引用rectcolor_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补丁可以登陆。

10-08 11:44