在Sass @for循环中使用css3媒体查询

Chr*_*ker 2 css sass css3 media-queries

可能吗?

例如:

@for $i from 1 through 12 {
  @media screen and (min-width: #{$i * 240}) { 
    width: {$i * 240 + (20*($i-1)) } ;
  }
}
Run Code Online (Sandbox Code Playgroud)

但我一直在努力

Invalid CSS after "...nd (min-width: ": expected expression (e.g. 1px, bold), was "#{$i * 240}) { ..."
Run Code Online (Sandbox Code Playgroud)

max*_*tty 5

您只能在Sass 3.2及更高版本的媒体查询中使用变量.您可以在终端中运行此版本来找到您正在使用的版本:

gem list | grep sass
Run Code Online (Sandbox Code Playgroud)

您可以通过运行安装3.2 alpha:

(sudo) gem install sass --pre
Run Code Online (Sandbox Code Playgroud)

我假设你也想要使用像素,所以一旦你安装了3.2+,你可以清理你的代码:

@for $i from 1 through 12 {
  @media screen and (min-width: $i * 240px) { 
    width: $i * 240px + (20*($i - 1));
  }
}
Run Code Online (Sandbox Code Playgroud)

注意乘以240px而不是只是240和之间添加的空格$i - 1