少变量的作用域/上下文(Less variables scopes/contexts)

2019-10-17 02:39发布

我更少的代码是这样的:

body {
  @var: white;

  &.blue { @var: blue; }
  &.red { @var: red; }
  &.abc { @var: #badass; }

  background-color: @var;
}

我希望是,如果body有类.abc的变量的值@var#badass ,如果你有一流.blue值是blue等等。 但是,这不会发生什么变化,该变量的值不改变企业自主遗体类。

Answer 1:

你需要创建一个参数混入:

.bg(@color){
  background-color:@color;
}

然后将下面的代码将工作:

body {
  .bg("white");

  &.blue{ .bg("blue");  }
  &.red { .bg("red");   }
  &.abc { .bg(#bada55); }

}

你在做什么是不工作的,因为你是重新分配变量 - 这完美的作品,但不包括写入新值类。 (这将使得完全没有意义,如果LESS创造了新的规则,每次你只是重新分配可变的时间。)此外,像任何其他的编程语言,少了范围,从而在它到达的时间background-color: @var; @var的值为white分配给它并创建相应的规则。 这下面的工作(但不作任何课程的意义上):

body {
  @var: white;

  &.blue{ @var: blue;    background-color: @var;}
  &.red { @var: red;     background-color: @var;}
  &.abc { @var: #bada55; background-color: @var;}
  background-color: @var;
}


文章来源: Less variables scopes/contexts
标签: css css3 less