1

ベース フォント スタイルを含む別のベース ラインの高さを計算するミックスを使用しようとしています。コンパイルしようとするたびに、エラーが発生します。

ここに例があります。

.lineHeight(@sizeValue){
@remValue: @sizeValue;
@pxValue: (@sizeValue * 10);
line-height: ~"@{pxValue}px";
line-height: ~"@{remValue}rem";
}

.baseFont(@weight: normal, @size: 14px, @lineHeight: (.lineHeight(2.1)) {
font-family: @fontFamily;
font-size: @size;
font-weight: @weight;
line-height: @lineHeight;
}

エラー: TypeError: Cannot call method 'charAt' of undefined at getLocation (/Applications/CodeKit.app/Contents/Resources/engines/less/lib/less/parser.js:212:34) at new LessError (/Applications) /CodeKit.app/Contents/Resources/engines/less/lib/less/parser.js:221:19) Object.toCSS (/Applications/CodeKit.app/Contents/Resources/engines/less/lib/less/parser) .js:385:31) /Applications/CodeKit.app/Contents/Resources/engines/less/bin/lessc:107:28 at /Applications/CodeKit.app/Contents/Resources/engines/less/lib/less/ parser.js:434:40 at /Applications/CodeKit.app/Contents/Resources/engines/less/lib/less/parser.js:94:48 at /Applications/CodeKit.app/Contents/Resources/engines/less/ lib/less/index.js:116:17 at /Applications/CodeKit.app/Contents/Resources/engines/less/lib/less/parser.js:434:40 at /Applications/CodeKit.app/Contents/Resources/engines/less/lib/less/parser.js:94:48 at /Applications/CodeKit.app/Contents/Resources/engines/less/lib/less/index. js:116:17

4

1 に答える 1

0

別の引数リストから mixin を呼び出すのは意味がありません ( (mixin を呼び出す前に追加のファセットがあることを除けば)。

これは、あなたの状況で機能する mixin 継承の試みですが、私が見た中で最もエレガントな LESS ではありません。重量とサイズのデフォルト値も 2 つの場所で繰り返す必要があります。

.lineHeight(@sizeValue){
    @remValue: @sizeValue;
    @pxValue: (@sizeValue * 10);
    line-height: ~"@{pxValue}px";
    line-height: ~"@{remValue}rem";
}

// Shared by both versions of baseFont, never used directly
.commonBaseFont(@weight, @size) {
    font-family: @fontFamily;
    font-size: @size;
    font-weight: @weight;
}

// baseFont called without lineHeight argument
.baseFont(@weight: normal, @size: 14px){
    .commonBaseFont(@weight, @size);
    .lineHeight(2.1)
}

// baseFont called with lineHeight argument
.baseFont(@weight: normal, @size: 14px, @lineHeight) {
    .commonBaseFont(@weight, @size);
    line-height: @lineHeight;
}
于 2012-06-08T04:43:51.930 に答える