css - Sass 循环 @mixin 和 @include

标签 css loops sass scss-mixins

我想创建一个这样的结构

    .nav-dropdown-items {
      .nav-link {
        padding-left: 1rem;
         .nav-dropdown-items {
           .nav-link {
              padding-left: 2rem;
              .....
            }
         }
      }
   }

这是我的sass代码

@mixin generatePadding($counter, $i:1){
  @debug $i;
  @debug $counter;
  .nav-dropdown-items {
    .nav-link {
      padding-left: 1rem + $i;
      @if $i < $counter {
        @debug "include";
        @include generatePadding($counter, ($i+1)); // next iteration
      }
    }
  }
}

但是填充总是相同的(2rem)而不是 2rem,3rem,4rem,......

谁能告诉我为什么?

最佳答案

我已经在 https://www.sassmeister.com/ 中测试了您的代码并且刚刚添加了@include generatePadding(3);在它的末尾。结果是:

.nav-dropdown-items .nav-link {
  padding-left: 2rem;
}
.nav-dropdown-items .nav-link .nav-dropdown-items .nav-link {
  padding-left: 3rem;
}
.nav-dropdown-items .nav-link .nav-dropdown-items .nav-link .nav-dropdown-items .nav-link {
  padding-left: 4rem;
}

一切似乎都很好。另外请确保您的 sass 编译器正常工作。

关于css - Sass 循环 @mixin 和 @include,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52093832/

相关文章:

html - 根据父元素的宽度(SASS)在 SASS 中设置子元素的背景颜色

javascript - 在 pageinit 上使用 jQuery Mobile 触发点击

loops - 在 Jmeter 中更改循环中的变量

javascript - 悬停在子嵌套元素上不应影响父元素

php - 带有键的数组的 Twig for 循环

algorithm - 与算法的复杂性共舞

javascript - 当 SCSS 中并排有多个 div 时,Outline 不会完全包裹 div

css - 在 Bourbon Neat 中使用类次重新排序列

css - 如何为 mixin 列表多次生成一个类?

html - 主导航下拉菜单 : Can't get it to align properly