Css 如何通过变量获得较小的映射值?

Css 如何通过变量获得较小的映射值?,css,less,Css,Less,为什么这不起作用 @colors: { red: #2A3F50; } .yyy{ @color: red; color: @colors[ @color ]; } 是否在Less方法中使用变量和映射? 错误: 找不到变量@color 附言: 但这段代码运行良好: @colors: { red: #2A3F50; } .yyy{ @color: red; color: @colors[ red ]; background-color: @color; } 如果

为什么这不起作用

@colors: {
  red: #2A3F50;
}

.yyy{
  @color: red;
  color: @colors[ @color ];
}
是否在Less方法中使用变量和映射? 错误:

找不到变量@color

附言: 但这段代码运行良好:

@colors: {
  red: #2A3F50;
}

.yyy{
  @color: red;
  color: @colors[ red ];
  background-color: @color;
}

如果我将
@@color
放入[],它将抛出
变量@red not found

@color:red;。yyy{color:@colors[@color];背景色:@color;}请参阅上文中ssilas777的PS。如果我将
@@color
放在
[]
中,它会抛出“Variable
@red
not found”-因为
@colors{…}
中的
红色
不是变量,而是属性。您将使用
$@
而不是
@
指向它。即,在您的情况下,您需要的代码是
@colors[$@color]
@colors[@color]
只会在
@colors
中查找名为
@color
的变量(但它不在那里)。最多七个阶段:谢谢您,先生!我花了半天时间尝试不同的组合。我很惊讶你知道这一点!我没有在lesscss.org上找到这个。