3

何らかの理由で、これを行うとSASSがコンパイルされません。

これが私のグローバル変数であると仮定します。

$gridColumnCount: 12;

@function gridCalc($colNumber, $totalColumns) {
    @return percentage(($colNumber / $totalColumns));
}

@mixin columns($columnSpan: 1) {
    width: gridCalc($columnSpan, $gridColumnCount);
}

このエラーが返され、scssファイルはコンパイルされません。

構文エラー:「1/12」は「パーセンテージ」の単位のない数値ではありません

パーセンテージを計算しているのではなく、引数を文字列として返しているようです。

非可変引数を使用するようにミックスインを変更すると、すべてが完全に機能します...次のようになります。

@mixin columns($columnSpan: 1) {
    width: gridCalc(4, 12);
}

誰かが私がどこで間違っているのか知っていますか?

参考:SASSバージョン:3.2.2

4

1 に答える 1

4

@Wesley Murch のおかげで、コードの何が問題なのかがわかりました。次の構文を使用して mixin を呼び出す必要がありました。

@for $i from 1 to $gridColumnCount {
    .span#{$i}, .mq-alpha-resize-to#{$i}  { @include columns($i);  }
}

これではない:

@for $i from 1 to $gridColumnCount {
    .span#{$i}, .mq-alpha-resize-to#{$i}  { @include columns(#{$i});  }
}

その理由は、SASS が数値を補間していたためです。

于 2012-11-24T14:48:44.107 に答える