在sass中设置svg线性渐变创建的颜色值

时间:2013-07-16 16:49:11

标签: svg internet-explorer-9 sass

在sass中,我必须使用svg线性渐变来支持IE9渐变,它采用不带#的颜色十六进制字符串。 这些是多色渐变,即滤镜无法实现。

我已经定义了这样的颜色:

$ color:#ff0000;

但是对于要工作的东西,我需要有没有散列符号的颜色:仅限ff0000。

似乎无法用sass删除字符串中的字符?

这是否意味着我必须在没有#的情况下声明颜色,然后将其添加到每个mixin中,IE浏览器声明除外?这似乎是糟糕的方法,但无法找到更好的解决方案,有没有人遇到过类似的问题?

1 个答案:

答案 0 :(得分:0)

IE 9将使用#颜色字符串显示渐变,下面的示例在IE9中正确显示渐变。没有#的情况下,SVG的颜色不是有效的,尽管Webkit一次没有强制执行。

<svg width="800" height="600" xmlns="http://www.w3.org/2000/svg">
    <defs>
        <linearGradient id="gradient" x1="0" y1="1" x2="0" y2="0">
            <stop offset="0%" stop-color="#ff0000" stop-opacity="1"/>
            <stop offset="100%" stop-color="#0000ff" stop-opacity="0"/>
        </linearGradient>
    </defs>

    <circle r="120" cx="120" cy="120" fill="url(#gradient)"/>
</svg>