3 回答

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個贊
請參閱循環(huán)。例如(假設(shè)@green,@red,@blue變量別處定義):
@colors: green, red, blue;
.example_module {
.-(@i: length(@colors)) when (@i > 0) {
@name: extract(@colors, @i);
&.@{name} {background: @@name}
.-((@i - 1));
} .-;
}
---
在Modern Less中,借助Lists插件可以更直接:
@colors: green, red, blue;
.for-each(@name in @colors) {
.example_module.@{name} {
background: @@name;
}
}
---
在Legacy Less中,語法糖可以使用:
@import "for";
@colors: green, red, blue;
.example_module {
.for(@colors); .-each(@name) {
&.@{name} {background: @@name}
}
}
"for"可以在此處找到導(dǎo)入的代碼段(這只是遞歸的Less循環(huán)的包裝mixin)(此處和此處都帶有示例)。

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個贊
這個mixin對我來說很好用。第二個參數(shù)是可以訪問當(dāng)前迭代元素(@value)和索引(@i)的代碼塊。
定義mixin:
.for(@list, @code) {
& {
.loop(@i:1) when (@i =< length(@list)) {
@value: extract(@list, @i);
@code();
.loop(@i + 1);
}
.loop();
}
}
使用:
@colors: #1abc9c, #2ecc71, #3498db, #9b59b6;
.for(@colors, {
.color-@{i} {
color: @value;
}
});
結(jié)果CSS:
.color-1 {
color: #1abc9c;
}
.color-2 {
color: #2ecc71;
}
.color-3 {
color: #3498db;
}
.color-4 {
color: #9b59b6;
}

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個贊
使用現(xiàn)代的LESS(> = 3.7),可以使用內(nèi)置each函數(shù):
/* (assuming @clr-green, @clr-red, @clr-blue variables are defined elsewhere) */
@colors: {
green: @clr-green;
red: @clr-red;
blue: @clr-blue;
}
each(@colors, {
.example_module.@{key} {
background: @value;
}
});
- 3 回答
- 0 關(guān)注
- 2498 瀏覽
添加回答
舉報(bào)