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

Est*_*ask 4 css less less-mixins

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

@detached-ruleset: {
  @margin: 1px;
  margin: @margin;
};
Run Code Online (Sandbox Code Playgroud)

和非参数混合?例如

.mixin() {
  @margin: 1px;
  margin: @margin;
}
Run Code Online (Sandbox Code Playgroud)

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

最明显的区别是语法(分号对于规则集是强制性的),规则集将其变量保持为私有,但这就是我能找到的全部内容.手册中没有详细说明.

Bas*_*sen 5

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

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

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

.mixin() {
  color: red;
}
Run Code Online (Sandbox Code Playgroud)

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

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

@detached-ruleset: {
  @margin: 1px;
  margin: @margin;
  color: red;
};
Run Code Online (Sandbox Code Playgroud)

另见:https://stackoverflow.com/a/30384948/1596547