0

クラスに動的に名前を付けるために使用される、less でこのループを通過する変数があります。これには膨大な量のクラスが生成される可能性があることを気にしないでください。関数呼び出しまたは他の場所で「赤」変数を別のものに変更すると、基本的にそれらがすべて同じでない場合、「 Object[object] には toCSS のメソッドがありません。

注:保存時にコンパイルするために、Macでlessアプリを使用しています。

ミックスイン呼び出し:

.createShades (10, "red", #ff3333);

ミックスイン自体

// 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) {}
4

1 に答える 1

0

エンディングの mixin (値が に達したときに使用される) を )ではなく0haveに変更する必要があります。そう...@color"red"

.createShades (0, @color, @base-color) {}
.createShade (@index, 0, @color, @base-color) {}

これは、「赤」に一致するものを探しているためです。呼び出しを別の色に変更すると、「赤」に一致しないため、エラーがスローされます。

于 2012-12-15T17:41:11.937 に答える