web-dev-qa-db-fra.com

SASS: pas de sélecteur

J'ai un sélecteur :not Css dans le mixin SASS mais il ne fait rien:

extrait de code:

@mixin dropdown-pos($pos:right) {
  &:not(.notip) {
    @if $comp-tip == true{
      @if $pos == right {
        top:$dropdown-width * -0.6;
        @include tip($pos:$pos);
      }
    }
  }
  &.notip {
    @if $pos == right {
      top: 0;
      left:$dropdown-width * 0.8;
    }
  }
}

La classe .notip Est en cours de génération, mais aucun fichier CSS n'est généré pour :not(.notip).

47
user2667409

J'ai essayé de recréer cela, et .someclass.notip Était généré pour moi, mais .someclass:not(.notip) ne l'était pas, tant que je n'avais pas défini @mixin tip(). Une fois que j'ai eu ça, tout a fonctionné.

http://sassmeister.com/Gist/9775949

$dropdown-width: 100px;
$comp-tip: true;

@mixin tip($pos:right) {

}

@mixin dropdown-pos($pos:right) {
  &:not(.notip) {
    @if $comp-tip == true{
      @if $pos == right {
        top:$dropdown-width * -0.6;
        background-color: #f00;
        @include tip($pos:$pos);
      }
    }
  }
  &.notip {
    @if $pos == right {
      top: 0;
      left:$dropdown-width * 0.8;
      background-color: #00f;
    }
  }
}

.someclass { @include dropdown-pos(); }

EDIT: http://sassmeister.com/ est un bon endroit pour déboguer votre SASS car il vous donne des messages d'erreur. Undefined mixin 'tip'. C'est ce que je reçois quand je supprime @mixin tip($pos:right) { }

62
Ming