媒体查询中的sass变量 - sass-rails-3.2.3

时间:2012-08-29 15:35:47

标签: ruby-on-rails ruby ruby-on-rails-3 sass

我正在尝试在媒体查询中使用变量 -

$break-small: 320px;
$break-large: 1200px;

.profile-pic {
  float: left;
  width: 250px;
  @media screen and (max-width: $break-small) {
    width: 100px;
    float: none;
  }
  @media screen and (min-width: $break-large) {
    float: right;
  }
}

它说它现在可以in this article

这是一个错误 -

Invalid CSS after "...nd (max-width: ": expected expression (e.g. 1px, bold), was "$break-small)

我的宝石文件 -

gem 'sass-rails',   '~> 3.2.3'

Sass-gem宝石v 3.2.3背后的sass宝石?还是我错过了一些明显的东西?

3 个答案:

答案 0 :(得分:1)

回答我自己的问题 -

我查看了我的Gemfile.lock,其中包含以下内容 -

sass (3.1.20)
sass-rails (3.2.5)

之后,我只是运行'bundle update sass',将sass更新为正确的版本。

媒体查询中的变量现在按预期工作。

答案 1 :(得分:0)

我刚刚在一个新的rails项目中尝试了这个完全相同的风格,你使用的是同一个宝石,它就像一个魅力。我的猜测是,您使用'sass'扩展名为您的文件,并且您应该使用'scss'

两者之间的语法不兼容,因此只需将文件名从(例如)'mystyle.css.sass'更改为'mystyle.css.scss'

答案 2 :(得分:0)

试试这个:

@mixin breakpoint($point) {
  @if $point == break-small {
    @media only screen and (max-width: 320px) { @content; }
  }
  @else if $point == break-large {
    @media only screen and (min-width: 1200px) { @content; }
  }
}

并且像这样说:

.profile-pic {
  float: left;
  width: 250px;
  @include breakpoint(break-small) {
    width: 100px;
    float: none;
  }
  @include breakpoint(break-large) {
    float: right;
  }
}