我擴展了默認較少的功能來支持一些基本列表。我添加「第n個」給定爲以下的函數:如何讓一個字符串指向一個變量爲Less?
"nth": function(obj, index){
var list = obj.value.split(",");
var n = index.value;
obj.value = list[n-1].trim();
return new tree.Anonymous(obj);
}
然後,我添加另一個函數「convertstrtovar」如下:
convertstrtovar: function(obj){
var str = obj.value.toString();
str = str.replace(/(@)/gi, '');
str = '~"@{' + str + '}"';
obj.value = str;
return new tree.Anonymous(obj);
}
此接收字符串,如「@white」並將其轉換爲〜」 @{白色}」。下面給出了更少mixin的示例代碼。
@button-text-colors: "@white, @dark, @red"; //parsed as a comma separated list.
@white: white;
@dark: black;
@red: red;
.something(@color){
color: @color;
}
.some{
@t: convertstrtovar(nth(@button-text-colors, 1));
.something(@t);
}
這使我輸出如下:
.some {
color: ~"@{white}";
}
爲什麼〜「@ {白}」被打印出字符串和不評價爲可變白色時通常〜「@ {白}」少獲得存儲在@white中的值?
聽起來像你需要第二次評估迭代?不知道這是否會有所幫助,但也許看看:http://movableapp.com/2012/08/execute-complex-javascript-in-lesscss/。 –
@ user2036771 >「nth」:function(obj,index); Doh!您再次重新發明了一個輪子:LESS已經具有完全相同的提取功能 –
@ seven-phases-max我找不到任何對extract()的引用。你能指點我嗎? – suparngp