Less loop 编译时少了“)”

Less loop missing ")" when compiling

我一直在研究一种完全用 html 和 css 构建轮播的方法。 没有Javascript。 到目前为止,我一直很喜欢我在网上找到的内容并看过一些教程。

不过这是我的问题。 我用 Less 构建了一个 mixin 循环来构建一堆 css 但由于某种原因它似乎在第 4 行(下面粘贴的代码中)缺少 closing brace ")"

我尝试了什么:

希望有人能看到我在这里做错了什么。

.loop( @i ) when ( @i > 0 ) {

.carousel-reviews {
    &__activator:nth-of-type( @i ) {
        &:checked ~ .carousel_track {
            transform: translateX(calc(@i - 1) * 100%);
        }
        &:checked ~ .carousel__slide:nth-of-type(@i) {
            transition: opacity @slideTransition, transform @slideTransition;
            top: 0;
            left: 0;
            right: 0;
            opacity: 1;
            transform: scale(1);
        }
        &:checked ~ .carousel__controls:nth-of-type(@i) {
            display: block;
            opacity: 1;
        }
        &:checked ~ .carousel__indicators .carousel__indicator:nth-of-type(@i) {
            opacity: 1;
        }
    }
  }
.loop ( ( @i - 1 ) );
}

如果我不够完整,请告诉我,我可以将信息添加到问题中。


编辑 1
编译器似乎在到达第 4 行的第一个 @i 时停止了。
出于某种原因,当我删除第一个变量时,错误移至第 8 行。
这表明由于某种原因,:nth-of-type().
中不允许使用变量 @i 有人知道这里发生了什么吗?

当我找到新的答案或问题时,我会继续搜索和更新

编辑 2
找到了解决方案。检查答案

看来我发现了问题。

关于 :nth-of-type().

中变量的使用,问题似乎出在 less 本身

当我从第 n 个类型中删除变量时,我注意到错误移到了一个新行,该行也包含第 n 个类型。
当我去查找 less 中变量的使用时,我找不到任何东西,后来我在堆栈溢出

中遇到了 post

THIS ANSWER BY MARTIN TURJAK

我建议去看看。 但简而言之,变量使用似乎存在问题,您必须像在 :nth-of-type(@{i}).

这样的字符串中使用它一样使用它

希望这可以帮助其他为同样的问题而苦苦挣扎的人。
我目前没有时间找出为什么会发生这种情况,我也没有任何线索,但如果有人可以解释这一点,那就太棒了。

无论如何,感谢您的宝贵时间,祝您今天愉快!