Sass SCSS for具有奇数语法的循环有效,但出现语法错误

Sass SCSS for具有奇数语法的循环有效,但出现语法错误,sass,webstorm,Sass,Webstorm,嗨,我创建了一个for循环来生成类似于bootstrap网格系统的类,但是使用flexbox,我想知道是否有人知道我为什么会出现这个错误 @for $i from 1 through 12 { .flex-#{$i} { flex: 0 #{$i} 8.333333333333333 * $i + % ; padding: 0 $default-spacing; } } 这一切都编译得很好,我只是在这一行出现了语法错误 flex: 0 #{$i}

嗨,我创建了一个for循环来生成类似于bootstrap网格系统的类,但是使用flexbox,我想知道是否有人知道我为什么会出现这个错误

@for $i from 1 through 12 {
    .flex-#{$i} {
        flex: 0 #{$i} 8.333333333333333 * $i + % ;
        padding: 0 $default-spacing;
    }
}
这一切都编译得很好,我只是在这一行出现了语法错误

flex: 0 #{$i} 8.333333333333333 * $i + % ;
也许是它的IDE基础,我使用的是最新版本的webstorm

有什么想法吗


谢谢,kieran。

如果要连接字符串,必须引用字符串,但您会得到一个字符串:

SASS

flex: 0 #{$i} 8.333333333333333 * $i + "%"
@for $i from 1 through 12 {
    .flex-#{$i} {
        flex: 0 #{$i} 8.333333333333333 * $i * 1% ;
        padding: 0 10px;
    }
}
输出

flex: 0 1 "8.33333%";
.flex-1 {
  flex: 0 1 8.33333%;
  padding: 0 10px;
}

.flex-2 {
  flex: 0 2 16.66667%;
  padding: 0 10px;
}
 ...
在您的情况下,最好对1%进行乘法,以获得以百分比为单位的数字

SASS

flex: 0 #{$i} 8.333333333333333 * $i + "%"
@for $i from 1 through 12 {
    .flex-#{$i} {
        flex: 0 #{$i} 8.333333333333333 * $i * 1% ;
        padding: 0 10px;
    }
}
输出

flex: 0 1 "8.33333%";
.flex-1 {
  flex: 0 1 8.33333%;
  padding: 0 10px;
}

.flex-2 {
  flex: 0 2 16.66667%;
  padding: 0 10px;
}
 ...

如果要连接字符串,则必须引用字符串,但会得到一个字符串:

SASS

flex: 0 #{$i} 8.333333333333333 * $i + "%"
@for $i from 1 through 12 {
    .flex-#{$i} {
        flex: 0 #{$i} 8.333333333333333 * $i * 1% ;
        padding: 0 10px;
    }
}
输出

flex: 0 1 "8.33333%";
.flex-1 {
  flex: 0 1 8.33333%;
  padding: 0 10px;
}

.flex-2 {
  flex: 0 2 16.66667%;
  padding: 0 10px;
}
 ...
在您的情况下,最好对1%进行乘法,以获得以百分比为单位的数字

SASS

flex: 0 #{$i} 8.333333333333333 * $i + "%"
@for $i from 1 through 12 {
    .flex-#{$i} {
        flex: 0 #{$i} 8.333333333333333 * $i * 1% ;
        padding: 0 10px;
    }
}
输出

flex: 0 1 "8.33333%";
.flex-1 {
  flex: 0 1 8.33333%;
  padding: 0 10px;
}

.flex-2 {
  flex: 0 2 16.66667%;
  padding: 0 10px;
}
 ...