请有人解释一下为什么这段代码不能工作:
@red-1:#ff0000;
@red-2:#990000;
@blue-1:#000ff;
@blue-2:#00099;
.setTheme(@theme){
@color-1:~"@{@{theme}-1}";
@color-2:fade(~"@{@{theme}-2}", 10%); //doesn't work
body.@{theme} .button{
background:@color-1;
color:@color-2;
}
}
.setTheme(~"red");谢谢;
发布于 2013-09-30 18:22:36
这是一只虫子
颜色函数与此已经提交了有关。
解决办法
不要试图在一个字符串中执行两个调用。将变量值设置为内部变量。然后,在使用它们时,直接使用@@语法。如下所示:
@red-1:#ff0000;
@red-2:#990000;
@blue-1:#000ff;
@blue-2:#00099;
.setTheme(@theme){
@color-1:~"@{theme}-1";
@color-2:~"@{theme}-2";
@color-2faded: fade(@@color-2, 10%);
body.@{theme} .button{
background:@@color-1;
color:@color-2faded;
}
}
.setTheme(~"red");或者没有额外的变量:
.setTheme(@theme){
@color-1:~"@{theme}-1";
@color-2:~"@{theme}-2";
body.@{theme} .button{
background:@@color-1;
color: fade(@@color-2, 10%);
}
}发布于 2014-02-06 23:08:58
您还可以尝试使用" color“函数将字符串转换为颜色。
@color: '#ccc';
background: color(@color);但是是的,它不适用于像你这样的多变量。导致#NaNNaNNaN
https://stackoverflow.com/questions/19098037
复制相似问题