Compiler errors 为什么我从WinLess收到此错误消息?
我正在努力减少学习,目前正在做一个练习,在这个练习中,我必须用更少的时间编写一段相当复杂的代码。我在一本工作簿上工作,据我所知,我已经完全按照别人告诉我的那样编写了代码,但我不断收到错误: 分析错误:缺少结束符) 以下是代码,此错误涉及的部分在两侧用两个*突出显示:Compiler errors 为什么我从WinLess收到此错误消息?,compiler-errors,less,Compiler Errors,Less,我正在努力减少学习,目前正在做一个练习,在这个练习中,我必须用更少的时间编写一段相当复杂的代码。我在一本工作簿上工作,据我所知,我已经完全按照别人告诉我的那样编写了代码,但我不断收到错误: 分析错误:缺少结束符) 以下是代码,此错误涉及的部分在两侧用两个*突出显示: @waarde: -((38*@index)-38); background-position: ~"@{waarde}px" 0; .menuspan (@bgc, @col, @tshad) { background-col
@waarde: -((38*@index)-38);
background-position: ~"@{waarde}px" 0;
.menuspan (@bgc, @col, @tshad) {
background-color: @@bgc;
color: @@col;
text-shadow: 0 0 5px @@tshad;
}
//m_item1
@bgcolor_1: #7da315;
@color_1: #3d4f0c;
@tshadow_1: #99bf31;
//m_item2
@bgcolor_2: #1e8bb4;
@color_2: #223a44;
@tshadow_2: #44a8d0;
//m_item3
@bgcolor_3: #c86c1f;
@color_3: #5a3517;
@tshadow_3: #d28344;
//m_item4
@bgcolor_4: #d0a525;
@color_4: #604e18;
@tshadow_4: #d8b54b;
//m_item5
@bgcolor_5: #af1e83;
@color_5: #460f35;
@tshadow_5: #d8b54b;
.lusGuardedMixin (@index) when (@index < 0) {
@waarde: -((38*@index)-38);
**(~".m_item@{index}")** {
background-position: ~"@{waarde}px" 0px;
&:hover {
background-position: ~"@{waarde}px" -39px;
}
& span {
.menuspan(~"bgcolor_@{index}", ~"color_@{index}", ~"tshadow_@{index}")
}
}
.lusGuardedMixin(@index + 1);
}
.lusGuardedMixin (6) {}
.lusGuardedMixin (1);
@waarde:-((38*@index)-38);
背景位置:~“{waarde}px”0;
.menuspan(@bgc,@col,@tshad){
背景色:@@bgc;
颜色:@@col;
文本阴影:0 0 5px@@tshad;
}
//m_项目1
@bgcolor_1:#7da315;
@颜色1:#3d4f0c;
@tshadow_1:#99bf31;
//m_项目2
@BGU颜色2:#1e8bb4;
@颜色2:#223a44;
@tshadow_2:#44a8d0;
//m_项目3
@bgcolor#U 3:#c86c1f;
@颜色3:#5a3517;
@tshadow_3:#d28344;
//m_项目4
@bgcolor_4:#d0a525;
@颜色4:#604e18;
@tshadow_4:#d8b54b;
//m_项目5
@bgcolor_5:#af1e83;
@颜色:460f35;
@tshadow_5:#d8b54b;
.lusguardemixin(@index)当(@index<0){
@瓦德:-((38*@指数)-38);
**(~“.m_item@{index}”)**{
背景位置:~“{waarde}px”0px;
&:悬停{
背景位置:~“{waarde}px”-39px;
}
&跨度{
.menuspan(~“bgcolor{index}”、“color{index}”、“tshadow{index}”)
}
}
.lusguaredmixin(@index+1);
}
LusguaredMixin先生(6){}
.lusguaredmixin(1);
编译器似乎太早就在寻找)了,因为它肯定在那里,但它的行为却好像不在那里一样。如何解决此问题?如评论中所述,WinLess或Less本身都没有问题。问题在于用于编译的代码。它可能来自一个仍然使用旧语法(几年前已被弃用)的过时源代码,因此产生了编译错误 以下是需要更正的错误:
- 代码中的前两行将产生编译错误,因为
变量仅在mixin循环内可用,而不在其外部可用。这完全不是必需的,可能只是复制粘贴错误@index
@waarde: -((38*@index)-38); background-position: ~"@{waarde}px" 0;
- 接下来,使用的选择器插值语法是过时/不推荐的语法。最新版本的编译器中根本不需要转义、大括号和引号。而不是这个,
仅以下内容就足够了:(~".m_item@{index}"){...}
.m_item@{index} {...}
- 最后,循环本身有一个错误,因为保护正在检查
是否小于0,但是mixin的输入值都大于0,因此mixin将永远不会被调用。另外,末尾的两个mixin调用不是必需的,它们可以更改为just@index
.lusguaredmixin(5)代码>
(添加我的评论和演示作为答案,以免问题得不到解答)您知道使用的是哪一版本的Less编译器吗?据我所知,在最新版本中不需要大括号、escape和引号。我真的不明白为什么你的mixin循环是这样编码的。只有当@index小于0时,它才会进入循环,但您在调用中使用的是正数。我今天从网站下载了它,所以我猜它是最新版本:D我应该如何设置它?编辑:请忽略代码中的<符号。我不知道怎么说,但那是个打字错误。在最新版本的编译器中,存在于中的代码就是您所需要的全部。试试看,如果有用请告诉我。谢谢。它似乎确实起作用了。然而,我有一个新的错误。伊迪特:没关系。当我粘贴代码时,我忘了删除出现在您代码上方的一段代码。它工作得很好。非常感谢你的时间和帮助:)老实说,我不知道。您的版本可能与此有关,因为我提供的代码在CodePen和