2014-04-22 2 views
0

J'essaie simplement d'utiliser la syntaxe BEM "modificateur" et "élément" dans SASS.SASS renvoie une erreur pour la syntaxe BEM

.second-title{ 
    background-color:green; 

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

    &__left{ 
    background-color:red; 
    } 
} 

Le fichier CSS compile correctement, mais lorsque je tente de courir « grunt servir » boussole jette l'erreur suivante:

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"; 
+1

Quelle version de SASS utilisez-vous? La syntaxe BEM a été corrigée dans la dernière version 3.3 –

+0

Je viens de lancer "gem update sass" et "gem update compass", il devrait s'agir de la dernière version. – Kitze

+0

Utilisez-vous aussi Compass? L'étalon Compass (0.12) vous forcera à utiliser Sass 3.2. – cimmanon

Répondre

3

Pour utiliser le sélecteur de parent de cette façon, vous devez utiliser Sass 3.3:

http://thesassway.com/news/sass-3-3-released#parent-selector-suffixes

Si vous êtes coincé avec une ancienne version, vous pouvez essayer ceci:

$module: 'second-title'; 

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

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

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

Ceci est désordonné, je veux juste rendre BEM plus simple, je ne veux pas trop compliquer:/ – Kitze

+0

@Kitze en effet, essayez de taper «sass -v» pour voir la version de votre sass, il devrait fonctionner http://sassmeister.com/gist/11178675 si vous avez la dernière version –

+0

J'ai la version 3.3.5 ... Sass la compile d'accord, le fichier css est correct, je pense qu'il y a quelque chose qui ne va pas avec la boussole ou le serveur grunt. – Kitze

Questions connexes