在媒体查询中使用LESS变量

6

当我输入以下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;
    }
}

转换后的CSS代码如下:

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

请注意,同一个变量@layout-max-width - 在媒体查询中会产生一个表达式(这不是我想要的),而当用作宽度属性的值时,它会产生400px(这也是我想要的媒体查询结果)。
在LESS中是否有正式的语法可以实现这一点?
如果没有 - 是否有解决方法?
1个回答

17

由于数学设置

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

@layout-max-width: (@num-cols * @item-width + @margins);

那么您的原始代码将输出您所期望的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接