每当我尝试编译自己的.less文件时,都会收到以下错误:
SyntaxError: variable @height, visibility is undefined in {web root}/resources/less/bootstrap/component-animations.less on line 31, column 3:
30 overflow: hidden;
31 .transition-property(~"height, visibility");
32 .transition-duration(.35s);
我在NetBeans中使用Less编译器,因此我不会编写所有less命令,但这是正在执行的命令:
"/bin/bash" "-lc" "\"/usr/local/bin/lessc\" \"--source-map\" \"--source-map-rootpath=../less\" \"--source-map-url=extraStyle.css.map\" \"--clean-css\" \"{web root}/resources/less/extraStyle.less\" \"{web root}/resources/css/extraStyle.css\""
在此文件中出现错误:
//
// Component animations
// --------------------------------------------------
// Heads up!
//
// We don't use the `.opacity()` mixin here since it causes a bug with text
// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
.fade {
opacity: 0;
.transition(opacity .15s linear);
&.in {
opacity: 1;
}
}
.collapse {
display: none;
visibility: hidden;
&.in { display: block; visibility: visible; }
tr&.in { display: table-row; }
tbody&.in { display: table-row-group; }
}
.collapsing {
position: relative;
height: 0;
overflow: hidden;
.transition-property(~"height, visibility");
.transition-duration(.35s);
.transition-timing-function(ease);
}
我无法找到有关此问题的任何信息。 有人可以帮我这个吗?
答案 0 :(得分:1)
Bootstrap的.transition-property()
mixin已在less / mixins / vendor-refixes.less
据我所知,您只能在@@transition;
mixin中使用@transition;
代替.transition-property()
时重现此错误。官方BS源代码不包含此类错误。你可以在extraStyle.less中定义一个包含.transition-property()
的{{1}} mixin吗?请注意Less编译器编译所有匹配的mixins。
要编写代码,尝试编译将编译类似:
@@transition;
输出:
.mixin(@list) {
property: @list;
p2: @list;
}
.selector {
.mixin(~"1 2");
}
此语法也适用于Less。
的早期版本注意,如上所述,当我更改mixin时,如下所示:
.selector {
property: 1 2;
p2: 1 2;
}
以上结果为.mixin(@list) {
property: @@list;
p2: @list;
}
答案 1 :(得分:0)
我终于得出结论,我有两个具有相同名称但具有不同变量方法的mixin。 我没注意到它,因为第二个mixin在另一个.less文件(mixin库)中。 将文件从导入中排除后,一切正常。
目前我使用Lessc 2.2.0(最新的npm) 所以也许是版本2.2.1的想法,检查双混合(或只有名称)
无论如何,谢谢你的时间!!!