2013-07-16 60 views
0

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

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

$ color:#ff0000;

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

似乎不可能删除字符串中的字符与sass?

这是否意味着我必须声明不带#的颜色,然后将其添加到每个混合中,IE IE svg声明除外?这看起来很糟糕,但找不到更好的解决方案,有没有人遇到过类似的问题?

回答

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> 
+0

谢谢,虽然,我必须通过css添加属性,并在那里编码xml。请参阅css下的http://www.colorzilla.com/gradient-editor/。属性是网址(数据:图像/ svg + xml; base64 ... – NenadP

+0

该网站正在创建base64编码的网址与哈希。尝试解码答案,你会看到。 –

+0

罗伯特,但似乎我不能跳过编码那里。所以我的#必须是%23 ... – NenadP