2012-02-29 44 views
1

我有以下的较少混入:less.js警卫和条件

@myColor = #123456;

.mixin(@a) when (@a = @myColor){ // do something }

然而,这将引发此错误:无法执行比较

这是为什么?

回答

2

它会出现(从lesscss 1.2.2开始),守卫只支持比较尺寸和关键字。 (搜索来源“比较:”)所以,可悲的是,比较两种颜色或字符串是行不通的。

0

更新:四个想法(再次,我没有LESS本身的经验,我只是看文档)。

  1. 是你传递给mixin的变量(@a)是十六进制格式的颜色吗?也许它不能进行比较,因为你传递了一个不同的变量类型。可以肯定的是,你仔细检查了你是否称为正确的变量(@myColor)而不是(@mycolor)。

  2. 您是否试过将when改为(@myColor = @a)以查看是否有效。 。论http://lesscss.org/,他们使用的混入(他们使用@media)没有定义一个变量的一个例子就是他们有它的顺序

  3. 最后,我的第一个原始的答案是尝试:

    .mixin(@a, @b: @myColor) when (@a = @b){ // do something }

0

只需将less.js更新到最新版本(1.2.2 - current)即可使用。

我有同样的问题。现在它为我修好了(我的问题与代码示例:Lesscss Mixins with guards. Syntax Error)。 我想,它会被修复,并为你举例。