0

コードベースに LESS 1.4 の拡張機能を採用しようとしましたが、すべての s.. を出力することがわかりましたmixin。たとえば:

.DefaultFont {
  font: 12px/1.5 sans-serif;
}
.NoPaddingMargin {
  padding: 0;
  margin: 0;
}

body:extend(.DefaultFont all, .NoPaddingMargin all) {

}

生成する

.DefaultFont,
body {
  font: 12px/1.5 sans-serif;
}
.NoPaddingMargin,
body {
  padding: 0;
  margin: 0;
}

しかし、私は出力したく.DefaultFontありません.NoPaddingMargin

.DefaultFont出力を避けるためにand.NoPaddingMarginをパラメトリック ミックスイン ( .DefaultFont() {}and ) として作成しようとしましbody:extend(.DefaultFont() all) {}たが、パーサーが認識しないようです。

スタイラスには%、この目的のためのものがあります。LESSで同じことを行う方法はありますか? よろしくお願いします

4

3 に答える 3

1

クラスを定義すると、別のルールセット内でそのクラスを再利用できます。

.DefaultFont {
  font: 12px/1.5 sans-serif;
}

次のように呼び出して、別のルールセットで使用します。

.DefaultFont();

.DefaultFontcss ルールセット自体にコンパイルされないようにしたい場合は()、最後に追加します。

.DefaultFont() {
  font: 12px/1.5 sans-serif;
}

同じように使用できますが、これ自体はルールセットにコンパイルされません。

編集:

http://lesscss.org/#-parametric-mixins

で mixin を宣言すると、()コンパイルされなくなります。パラメーターを持たない、またはデフォルトを持つ mixin は()、mixin の宣言のみを必要とするために mixin を使用する必要はありません。

パラメータを取らないパラメトリック ミックスインを使用することもできます。これは、CSS 出力からルールセットを隠したいが、そのプロパティを他のルールセットに含めたい場合に便利です。

于 2013-08-28T02:39:16.280 に答える
1

現時点では、LESS は必要なものをサポートしていません。その拡張はセレクターにのみ使用でき、パラメトリック ミックスインには使用できません ( https://github.com/less/less.js/issues/1177を参照)。したがって、CSS 出力でダミーの .DefaultFont/.NoPaddingMargin セレクターを受け入れるか、extend ではなく保守的な mixin 展開にフォールバックする必要があります。

于 2013-08-28T07:52:27.750 に答える