LESS-variable值为== null,未定义?

时间:2013-11-28 17:23:28

标签: css web less

为了明白这一点,我正在谈论http://lesscss.org/

中描述的“LESS”

我阅读了文档并进行了一些搜索,但我没有找到用一些“null”或未定义参数调用mixin的可能性。

例如来自retina.js的这个mixin文件较少: .at2x(@path, @w: auto, @h: auto)有2个可选参数。

现在我只想用定义的路径和高度来调用它。我该怎么做?

不起作用的事情:

.at2x(EXAMPLEURL, '', 500px)
.at2x(EXAMPLEURL, null, 500px)
.at2x(EXAMPLEURL, , 500px)
.at2x(EXAMPLEURL,, 500px)
.at2x(EXAMPLEURL, undefined, 500px)

当然可以称之为:

.at2x(EXAMPLEURL, auto, 500px)

3 个答案:

答案 0 :(得分:2)

您可以使用"Named Parameters"

.at2x(EXAMPLEURL, @h: 500px);

答案 1 :(得分:0)

空值

是一个转义空字符串,如下所示:

.at2x(EXAMPLEURL, ~'', 500px);

除了空白字符外,这将为@w变量输出“nothing”。这不一定会消除它所用的属性,但它会使该属性在css中无效。因此,如果用于设置width: @w

,您可能会得到此信息
width:  ;

在css中会被忽略。或者如果它是background-size: @w @h的一部分,你会得到这样的结果:

background-size:   500px;

当然,在这个术语的正常编程意义上,这不是真正的NULL,但我认为这正是你所寻找的。

答案 2 :(得分:-1)

我和Less有同样的问题,我找到了解决方法。

FIX:

@font-face {
  font-family: 'Name';
  src: url('Font.ext');
  font-weight: 400;
  font-style: normal;
}

问题示例:

之前:

@MyEmptyVar: e("");

之后:

/* Input (Style.less)*/
@IconPrefix: "";
/*
* With my less version this
* @IconPrefix: ; cause a compilation error    
*/
.@{IconPrefix}glass:before {
  content: "\f000";
}

/* Output  (Style.css)*/
.""glass:before {
  content: "\f000";
}