更少分离的规则集与非参数混合

LESS detached ruleset vs non-parametric mixin

分离的规则集之间是否存在实质性差异,例如

@detached-ruleset: {
  @margin: 1px;
  margin: @margin;
};

和非参数混合?例如

.mixin() {
  @margin: 1px;
  margin: @margin;
}

它们与嵌套运算符的行为是否相同?

最明显的区别是句法(规则集必须使用分号),并且规则集将其变量保密,但我能找到的就是这些。手册没有详细介绍。

分离的规则集是一个变量。对于 Less 中的变量,最后的声明获胜并且变量被延迟加载。

对于可重用代码,您可以通过定义第二个具有相同名称的 mixin() 来轻松扩展 .mixin():

.mixin() {
  @margin: 1px;
  margin: @margin;
}

.mixin() {
  color: red;
}

在上面使用分离的规则集时,您应该重复所有属性,因为第二个声明会覆盖第一个:

@detached-ruleset: {
  @margin: 1px;
  margin: @margin;
};

@detached-ruleset: {
  @margin: 1px;
  margin: @margin;
  color: red;
};

另请参阅: