You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SCSS插值传递数值失效求助:@for循环mixin传参问题

问题分析与修复方案

你的SCSS代码存在两处关键语法错误,导致无法正常运行,以下是问题说明和修复后的代码:

错误点说明

  • @for循环的数值插值误用:在@for $i from #{$start} through #{$end}中,你对$start和$end使用了插值语法#{},这会将传入的数字参数转换为字符串类型,而SCSS的@for循环要求起始/结束值必须是数值类型,直接导致循环无法执行。
  • 缺少语句结束分号:最后一行@include titleTxt("text", 16, 24)末尾没有分号,这是SCSS的语法错误,会触发编译失败。
  • (可选优化):$colors作为SCSS Map,键名不需要加单引号,去掉引号更符合常规写法(带引号也能运行,但冗余)。

修复后的完整代码

$colors: (primary: #000, secondary: #fff);

@mixin titleTxt($title, $start, $end) {
  @for $i from $start through $end {
    @if $i % 2 == 0 {
      .#{$title}-#{$i} {
        color: #000;

        @each $name, $color in $colors {
          &-#{$name} {
            color: $color;
          }
        }
      }
    }
  }
}

@include titleTxt("text", 16, 24);

修复后效果

编译后会生成.text-16、.text-18、.text-20、.text-22、.text-24这些偶数数值的类,同时每个类会附带对应的.text-XX-primary和.text-XX-secondary变体,颜色分别对应#000和#fff。

内容的提问来源于stack exchange,提问作者Ragunath Srinivasan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 00:42:05