编译时缺少循环,缺少“)”

时间:2019-01-25 09:56:00

标签: css loops compilation less

我一直在研究一种纯粹使用html和css构建轮播的方法。 没有Java语言。 到目前为止,我一直很喜欢在网上找到的内容,并看了一些教程。

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

我尝试过的事情:

  • 完全删除Less代码块->错误消失了。
  • 删除了.carousel-reviews->错误内的所有代码,仍然存在
  • 删除了子选择器周围的.carousel-reviews->错误仍然存​​在
  • 将变量名从@i更改为@index->错误仍然存​​在
  • &__activator:nth-of-type( @i )选择器内部删除了所有代码->错误仍然存​​在

希望有人可以在这里看到我做错了。

.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行。
这表明出于某种原因,@i内不允许使用变量:nth-of-type()
有人知道这是怎么回事吗?

当我发现新的答案或问题时,我将继续搜索和更新

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

1 个答案:

答案 0 :(得分:0)

所以看来我找到了问题。

似乎在:nth-of-type()中使用变量本身的问题少了。

当我从第n个类型中删除变量时,我注意到错误转移到了也包含第n个类型的新行中。
当我花更少的时间查找变量的使用之后,我什么都没找到,我在堆栈溢出中遇到了这里的帖子

THIS ANSWER BY MARTIN TURJAK

我建议您检查一下。 简而言之,变量use似乎存在问题,您必须像在:nth-of-type(@{i})这样的字符串中使用它一样使用它。

希望这可以帮助其他人解决同样的问题。
我目前没有时间找出发生这种情况的原因,我也没有任何线索,但是如果有人可以解释这一点,那将非常棒。

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