Mindscape Web Workbench (pro)を使用して、LESSファイルからCSSを生成しています。同じ名前で引数の数が異なる2つのミックスインがあります。
LESSのドキュメントによると、呼び出しの引数の数に基づいて、正しいミックスインが自動的に選択されるはずです。ドキュメントの関連セクションは次のとおりです。
アリティで照合することもできます。例を次に示します。
.mixin (@a) { color: @a; } .mixin (@a, @b) { color: fade(@a, @b); }
ここで、単一の引数を使用して.mixinを呼び出すと、最初の定義の出力が取得されますが、2つの引数を使用して呼び出すと、2番目の定義、つまり@aが@bにフェードされます。
しかし、これは私には当てはまらないようです。
以下は、ミックスインの2つのバージョンです.border-radius
。1つ目は単一の引数を取り、2つ目はカスタムの引数セットを送信できるようにします。クラス#searchbox
は単一引数のミックスインを#search
呼び出し、クラスは複数引数のミックスインを呼び出します。
少ないミックスイン
.border-radius (@radius: 5px) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
border-radius: @radius;
}
.border-radius (@topleft: 5px, @topright: 5px, @bottomleft: 5px, @bottomright: 5px) {
-webkit-border-radius: @topleft @topright @bottomright @bottomleft;
-moz-border-radius: @topleft @topright @bottomright @bottomleft;
border-radius: @topleft @topright @bottomright @bottomleft;
}
#searchbox {
.border-radius(1px);
}
#search {
.border-radius(2px, 3px, 4px, 5px);
}
生成されるCSSは、 Arity (引数の数)を尊重しません。代わりに、以下の生成されたCSSが示すように、単一の引数で呼び出すと両方のミックスインが実行され、複数の引数で呼び出すと正しいミックスインのみが実行されるようです。
生成されたCSS
#searchbox {
-webkit-border-radius: 1px;
-moz-border-radius: 1px;
border-radius: 1px;
-webkit-border-radius: 1px 5px 5px 5px;
-moz-border-radius: 1px 5px 5px 5px;
border-radius: 1px 5px 5px 5px;
}
#search {
-webkit-border-radius: 2px 3px 5px 4px;
-moz-border-radius: 2px 3px 5px 4px;
border-radius: 2px 3px 5px 4px;
}
私は何が間違っているのですか?