あなたのセレクターの配列がある - @elements
を。
次に、@elements
の長さが得られます。これは配列を通じてイテレータとして使用されます。 ループが開始されます。名前はset-font-size
です。 Less
では、ループは再帰的なミックスインです。このミックスインは、いくつかのパラメータを取り、条件が正しくなるまでそれ自身を呼び出します。この例では、@_i > 0
の間に動作します。自らを呼び出すたびに@_i
の値が減少します。
mixin(またはループ)の内部では、extract(@array, @index)
コマンドを呼び出すことによって配列から現在の要素を取得します。次に、セレクタにフォントサイズを設定します。 mixinの呼び出し時には、font-sizeの値が@_font-size * @_line-height
に増えます。
すべて:)
Codepen DEMOです。
控除:
@elements: h1, h2, h3, h4;
@iterations: length(@elements); // lehgth of @elements
@font-size: 1.7rem;
@line-height: 1.414;
.set-font-size(@_i, @_elements, @_font-size, @_line-height) when (@_i > 0) {
@selector: extract(@_elements, @_i);
@{selector} {
font-size: @_font-size;
}
.set-font-size(@_i - 1, @_elements, @_font-size * @_line-height, @_line-height);
}
.set-font-size(@iterations, @elements, @font-size, @line-height);
CSSの出力:
h4 {
font-size: 1.7rem;
}
h3 {
font-size: 2.4038rem;
}
h2 {
font-size: 3.3989732rem;
}
h1 {
font-size: 4.8061481rem;
}