在媒体查询中使用LESS变量

Dan*_*eld 6 css less

当我输入以下较少的代码时:(将其粘贴到http://less2css.org)

@item-width: 120px;
@num-cols: 3;
@margins: 2 * 20px;
@layout-max-width: @num-cols * @item-width + @margins;

@media (min-width: @layout-max-width) {
    .list {
      width: @layout-max-width;
    }
}
Run Code Online (Sandbox Code Playgroud)

...生成的CSS是:

@media (min-width: 3 * 120px + 40px) {
  .list {
    width: 400px;
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,同一个变量@layout-max-width- 在媒体查询中它产生一个表达式(这不是我想要的),当用作width属性的值时,它产生400px(这也是我想要的媒体查询.)

LESS中是否有正式语法使我能够这样做?

如果没有 - 有解决方法吗?

Sco*_*ttS 17

由于数学设置

默认情况下,LESS期望数学运算在括号(strict-math=on)中.因此,您的变量需要围绕值进行正确计算,如下所示:

@layout-max-width: (@num-cols * @item-width + @margins);
Run Code Online (Sandbox Code Playgroud)

然后您的原始代码将按预期输出.