我有一个变量,我将通过此循环传递给less,用于动态命名该类。没关系,这有可能产生大量的类,我想知道为什么如果我将“红色”变量更改为函数调用中的任何其他内容或其他任何地方,基本上如果它们不是全部相同,我得到一个“ Object [object]没有CSS的方法。
注意:我在mac上使用less app来编译保存。
mixin电话:
.createShades (10, "red", #ff3333);
mixin本身
// Generate our reds
.createShades (@index, @color, @base-color) when (@index > 0) {
@i: @index;
.createShade (@index, @i, @color, @base-color);
.createShades (@index - 1, @color, @base-color);
}
.createShades (0, "red", @base-color) {}
.createShade (@index, @i, @color, @base-color) when (@i > 0) {
@num: percentage((lightness(@base-color)/100) * (1 - (@i / @index)));
@newShade: darken(@base-color, @num);
(~".@{color}-@{i}-@{index}-text") {
color: @newShade;
}
(~".@{color}-@{i}-@{index}-bg") {
background-color: @newShade;
}
.createShade (@index, @i - 1, @color, @base-color);
}
.createShade (@index, 0, "red", @base-color) {}
答案 0 :(得分:1)
您需要将结尾 mixin(在值达到0
时使用)更改为@color
而不是"red"
)。所以......
.createShades (0, @color, @base-color) {}
.createShade (@index, 0, @color, @base-color) {}
这是因为它正在寻找“红色”匹配,因此当您将呼叫更改为另一种颜色时,它会抛出错误,因为它与“红色”不匹配。