在微软渐变中使用较少变量

时间:2012-08-20 13:56:30

标签: css less

我遇到了一些麻烦。没有认识到字符串中有变量。这是我目前的代码

filter: progid:DXImageTransform.microsoft.gradient(startColorstr='@{startColor}', endColorstr='@{endColor}', GradientType=0);

@startColor和@endColor都是变量。

如何在字符串中放置.LESS变量?

编辑:

我修好了(我想..)这是适合我的结束代码

filter: progid:DXImageTransform.Microsoft.Gradient(startColorstr=@startColor, endColorstr=@endColor, GradientType=0);

2 个答案:

答案 0 :(得分:21)

尝试:

filter: ~"progid:DXImageTransform.Microsoft.gradient(startColorstr='@{startColor}', endColorstr='@{endColor}', GradientType=0)"

tilda和引号允许你实际上为这种情况转义代码。我最终也使用了我的不透明度,但那是因为我想重用单词opacity作为函数名。

filter: ~"alpha(opacity=@{op})! important" 

答案 1 :(得分:3)

最好使用以下命令转义整个过滤器属性:〜“filter”并将少量变量(不带“@”符号)包装在大括号中。

我创建了一个mixins,可以将颜色和不透明度值分别正确转换为rgba和argb值:

.rgba(@color, @opacity) {
    @rgba: fade(@color, @opacity);
    @ieColor: argb(@rgba);

    background-color: @rgba;
    filter: ~"progid:DXImageTransform.Microsoft.gradient( startColorstr='@{ieColor}', endColorstr='@{ieColor}',GradientType=0)";
}