我遇到了一些麻烦。没有认识到字符串中有变量。这是我目前的代码
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);
答案 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)";
}