我有一个包含以下结构的.less样式表:
@width:600;
.some-style
{
width:@{width}px;
}
这会导致以下错误:
Expected '}' on line x in file '..\styles.less'
我需要使用这些大括号,因为我需要将变量与后面的
px
后缀区分开来(@widthpx
不起作用,因为它会寻找一个名为widthpx
的变量)。而且我不能使用空格,因为600 px
不是有效的css。使用圆括号而不是花括号也不起作用。我在这里做错了什么?
更新:我从包管理器中安装了最新版本的.less,现在它工作得更好了,但存在致命缺陷。
width:@(width)px; <--note the parentheses
现在编译通过了,但是输出的CSS如下:
600 px <--note the space, which is invalid CSS, thus useless.
已解决:ScottS 指出了解决方案。除了他提供的两种方法外,编译器似乎还可以对字符串进行数学运算。所以这个方法有效:@width:600px;
.some-style
{
width:@width / 2; <--correctly emits "300px"
}
@width
上最初放置单位的原因。我将更新答案以帮助解释为什么这并不像你认为的那样“违反直觉”。 - ScottS