Css SASS为BEM语法抛出错误

Css SASS为BEM语法抛出错误,css,sass,bem,Css,Sass,Bem,我只是想在SASS中使用“modifier”和“element”BEM语法 .second-title{ background-color:green; &--touched{ background-color:black; } &__left{ background-color:red; } } CSS文件编译正确,但当我尝试运行“grunt serve”compass时,会抛出以下错误: Syntax error: Invalid C

我只是想在SASS中使用“modifier”和“element”BEM语法

.second-title{
   background-color:green;

  &--touched{
    background-color:black;
  }

  &__left{
   background-color:red;
  }
}
CSS文件编译正确,但当我尝试运行“grunt serve”compass时,会抛出以下错误:

Syntax error: Invalid CSS after \" &-\": expected number or function, was \"-touched{\"\A on line 71 of D:/webdev/angularjs/ang-snapscan/app/styles/mobilestyle.scss";

为了以这种方式使用父选择器,您需要使用Sass 3.3:

如果您无法使用旧版本,可以尝试以下方法:

$module: 'second-title';

.second-title {
   background-color:green;
}

.#{$module}--touched{
  background-color:black;
}

.#{$module}__left{
 background-color:red;
}

您使用的是什么sass版本?BEM语法在最新版本3.3I中已修复,我刚刚运行了“gem update sass”和“gem update compass”,它应该是最新版本。您也在使用compass吗?Compass stable(0.12)将迫使您使用Sass 3.2。是的,我使用的是Compass 0.12.6,是否有支持Sass 3.3.5的Compass版本?您需要升级到edge版本(gem install Compass--pre)。这很混乱,我只想让BEM更简单,我不想让它过于复杂:/@Kitze确实,尝试键入'sass-v'以查看您的sass版本,如果您有最新版本,它应该可以工作。我有版本3.3.5。。。Sass编译的不错,css文件也不错,我认为compass或grunt服务器有问题。