减或运算符

Less OR operator

如果 other 是 'undefined',是否可以有回退变量。 如以下示例所示:

@defColor = '#fff';
@setColor = '';

.selector {
   color: @setColor || @defColor;
}

上面的情况应该return:

.selector {
   color: #fff;
}

而当setColor不为空时,会使用:

@defColor = '#fff';
@setColor = '#000';

.selector {
   color: @setColor || @defColor;
}

哪个 return:

.selector {
   color: #000;
}

我知道以下方法有效:

.selector {
   color: @defColor;
   color: @setColor;
}

但是看起来不对。

谢谢!

我认为这应该可以使用 LESS 的逻辑 if (documentation) and iscolor (documentation) 函数:

@defColor: #fff;
@setColor: '';

.selector {
   color: if(iscolor(@setColor), @setColor, @defColor);
}

值得注意的是 "#fff" 被解释为字符串而不是颜色,因此您在定义颜色变量时需要省略引号才能使此方法起作用。

您可以将其粘贴到 LESS 的 playground 中进行试用。