0

我写了一组 Less 函数:

.b(@a) when (iscolor(@a))    { border:1px solid @a;}
.b(@a) when (ispixel(@a))    { border: @a;}
.b(@a; @b; @c)    { border: @a @b @c;}

像这样调用函数时

.b(none; ''; '');

我得到这个输出:

border:none '' '';

我在寻找:

border:none;

如果我使用

.b(none; ; );

我收到此错误:

预期 ')' 得到 ';'

我不想使用更多功能。

我正在使用 Crunch 进行编译。

任何人都可以帮忙吗?

4

1 回答 1

2

有几种方法:

.b1(...)  {border: @arguments} // you can use variadic args
.b2(@values) {border: @values} // you can use "space delimited" values as a single arg

#usage {
    .b1(1px, solid, white);
    .b1(2px);
    .b2(3px dotted black);
    .b2(4px whatever);
}

输出:

#usage {
  border: 1px solid #ffffff;
  border: 2px;
  border: 3px dotted #000000;
  border: 4px whatever;
}

PS并且“空白”参数(就像您最初尝试的那样)也可以工作 - 您只需要转义值:

.b(7px, ~'', ~'');
于 2013-08-30T09:49:56.277 回答