我有以下的较少混入:less.js警卫和条件
@myColor = #123456;
.mixin(@a) when (@a = @myColor){ // do something }
然而,这将引发此错误:无法执行比较
这是为什么?
我有以下的较少混入:less.js警卫和条件
@myColor = #123456;
.mixin(@a) when (@a = @myColor){ // do something }
然而,这将引发此错误:无法执行比较
这是为什么?
它会出现(从lesscss 1.2.2开始),守卫只支持比较尺寸和关键字。 (搜索来源“比较:”)所以,可悲的是,比较两种颜色或字符串是行不通的。
更新:四个想法(再次,我没有LESS本身的经验,我只是看文档)。
是你传递给mixin的变量(@a
)是十六进制格式的颜色吗?也许它不能进行比较,因为你传递了一个不同的变量类型。可以肯定的是,你仔细检查了你是否称为正确的变量(@myColor
)而不是(@mycolor
)。
您是否试过将when
改为(@myColor = @a)
以查看是否有效。 。论http://lesscss.org/,他们使用的混入(他们使用@media
)没有定义一个变量的一个例子就是他们有它的顺序
最后,我的第一个原始的答案是尝试:
.mixin(@a, @b: @myColor) when (@a = @b){ // do something }
只需将less.js更新到最新版本(1.2.2 - current)即可使用。
我有同样的问题。现在它为我修好了(我的问题与代码示例:Lesscss Mixins with guards. Syntax Error)。 我想,它会被修复,并为你举例。