2012-02-21 46 views
3

我有手写笔的功能,看起来像这样我可以将变量放入字面css中的手写笔吗?

// Shortcut for top-down gradient background color 
td_gradient(color1, color2) 
    background-color (color1 + (color2 - color1)/2) 
    background -webkit-gradient(linear, 0% 0%, 0% 100%, from(color1), to(color2)) 
    background -webkit-linear-gradient(top, color1, color2) 
    background -moz-linear-gradient(top, color1, color2) 
    background -ms-linear-gradient(top, color1, color2) 
    background -o-linear-gradient(top, color1, color2) 
    @css 
    { 
     filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=color1, endColorstr=color2); 
    } 

我必须包装文字的CSS范围内@css Internet Explorer的渐变样式,否则就崩溃手写笔。可能太多冒号什么的。在任何情况下,变量color1color2都是在CSS范围内字面上的,这会破坏样式。

任何方式我可以得到的CSS范围解析变量?或者有没有一种方法可以在不使用字面CSS范围的情况下获得手写笔内的过滤器样式?

回答

6

这里有一种方法:

filter s('progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorstr=%s, EndColorstr=%s)', color1, color2)) 

不过我劝你看看nib,也TJ。特别是,他构建了一个可以在png中自动生成渐变图像的mixin,并将其64位编码到样式表中。唯一需要注意的是,您需要指定高度(或宽度,对于水平渐变),但对于您的td:s应该没问题。

更新:干净了一点:

filter 'progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorstr=%s, EndColorstr=%s)' % (color1 color2)