Less 如何要求更少的人忽略输出中的扩展目的混合

Less 如何要求更少的人忽略输出中的扩展目的混合,less,Less,我试图对我的代码库采用更少的1.4扩展特性,但发现它会输出所有的mixins。。例如: .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;

我试图对我的代码库采用更少的1.4扩展特性,但发现它会输出所有的
mixin
s。。例如:

.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
.noaddingmargin

我尝试将
.DefaultFont
.noaddingmargin
作为参数混合(
.DefaultFont(){}
body:extend(.DefaultFont()all){}
)以避免输出,但解析器似乎无法识别它


针式笔中有用于此目的的
%
。有没有什么方法可以在更少的时间内做到这一点?非常感谢

如果您定义了一个类,您可以在另一个规则集中重用该类:

.DefaultFont {
  font: 12px/1.5 sans-serif;
}
在另一个规则集中使用,按如下方式调用:

.DefaultFont()

如果要防止将
.DefaultFont
编译为css规则集本身,请在末尾添加
()

.DefaultFont() {
  font: 12px/1.5 sans-serif;
}
您仍然以相同的方式使用它,但它不会被编译成规则集

编辑:

()
声明mixin将阻止编译它。没有参数或具有默认值的mixin不需要使用mixin来要求
()
仅声明mixin

您还可以使用不接受参数的参数混合。这 如果要从CSS输出中隐藏规则集,则此选项非常有用,但是 要在其他规则集中包含其属性:


目前,LESS不支持您想要的功能,它的extend只能用于选择器,不能用于参数混合(请参阅)。
因此,您要么接受dummy.DefaultFont/.no在CSS输出中添加边距选择器,要么退回到保守的mixin扩展而不是extend。

您试图错误地使用
:extend
,因为该功能的全部目的是扩展原始选择器的声明。如果您只是希望
body
具有类的属性,则需要通过正常的mixin将它们包括在其中:

body {
  .DefaultFont;
  .NoPaddingMargin;
}

thx,但是
body:extend(.DefaultFont()all){}
未能编译我说的是声明它,而不是用法。我也不知道你从哪里得到这个
:extend
,因为它不是LESS文档的一部分。
extend()
功能是在1.4版的beta测试中添加的,这里提供了一些文档:。谢谢,这是对这个问题的演示。不寻找替代方案。