Sass mixin变量参数错误

L4D*_*D13 5 css sass mixins

使用变量参数时,我遇到了一个不一致的错误.

项目中有一些mixin接受变量参数.其中之一是;

@mixin box-shadow($shadows...) {
  -moz-box-shadow: $shadows;
  -webkit-box-shadow: $shadows;
  box-shadow: $shadows;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,它接受变量参数.除了我工作地点的几台机器外,这种方法都可以正常工作.

在它不工作的机器上,我们得到以下错误;

"... x-shadow($ args":expected")"之后的CSS无效,是"......"{"

我们都运行相同版本的SASS,Sass 3.3.7(Maptastic Maple)

除SASS版本之外还有什么可能导致错误吗?在尝试解决此问题时,我们都使用完全相同的代码库.

Mic*_*umo 0

应该:

@mixin box-shadow($shadows) {
  -moz-box-shadow: $shadows;
  -webkit-box-shadow: $shadows;
  box-shadow: $shadows;
}
Run Code Online (Sandbox Code Playgroud)

您的省略号似乎引起了问题。

此外,您可能需要考虑利用 SASS Mixin 库来为您完成许多常见的供应商前缀工作。我用波本威士忌 - http://bourbon.io/

还有各种其他好处,例如将像素转换为 rems 的函数等。

更新

我刚刚意识到你正在尝试使用可变参数。在这种情况下,从文档来看语法看起来是正确的。确保您使用的是 SASS 3.2+

http://chriseppstein.github.io/blog/2012/08/23/sass-3-2-is-released/

我正在运行 SASS 3.3.6,使用您的代码没有收到此错误。

我建议在您的项目中使用 Gemfile 并从中构建。这将确保您确实使用了正确的宝石,并且每个人都使用相同的设置。

我的 Gemfile 适用于您的代码:

# Install these gems by running 'bundle install'.
# Install bundle from these instructions: http://bundler.io/

source 'https://rubygems.org'

# Using Compass Alpha release due to compatability with SASS 3.3+
gem 'sass', '3.3.6'
gem 'compass', '~> 1.0.0.alpha.19'
gem 'bourbon', '4.0.1'
gem 'neat', '1.6.0'
Run Code Online (Sandbox Code Playgroud)