SCSS mixin,如何连接单元?(像素,%,em)

Ton*_*bet 5 css sass mixins compass

我想定义像这样的类

.bg-1 {
   width: 1%
}
.bg-2 {
   width: 2%
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试这样做:

@for $i from 1 through 100 {    
  .bg-#{$i} {
    width: #{$i};
  }
}
Run Code Online (Sandbox Code Playgroud)

这至少可以编译,但打印出来

    .bg-1 {
       width: 1;
    }
    .bg-2 {
       width: 2;
    }
Run Code Online (Sandbox Code Playgroud)

问题是如果我添加:

width: #{$i}%;
Run Code Online (Sandbox Code Playgroud)

我有:

error sass/screen.scss (Line 294 of sass/modules/_classes.scss: Invalid CSS after "   $var: ": expected expression (e.g. 1px, bold), was "%;")
Run Code Online (Sandbox Code Playgroud)

spe*_*vic 5

或者类似的东西,这是更受欢迎的。

@for $i from 1 through 100 {    
  .bg-#{$i} {
    width: round(percentage($i/100)); // Math function
    height: #{$i}px; // For px or em just concat
  }
}
Run Code Online (Sandbox Code Playgroud)


mar*_*que 3

尝试这个解决方案。有用。

@for $i from 1 through 100 {    
   .bg-#{$i} {
     $percentage: unquote("%");
     width: #{$i}$percentage;
   }
}
Run Code Online (Sandbox Code Playgroud)

或这个:

 @for $i from 1 through 100 {    
  .bg-#{$i} {
    width: #{$i}unquote("%");
  }
}
Run Code Online (Sandbox Code Playgroud)