Подтвердить что ты не робот

SASS: не селектор

У меня есть селектор :not css в SASS mixin, но он ничего не делает:

Фрагмент кода:

@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;
    }
  }
}

Создается класс .notip, но для :not(.notip) не создается CSS.

4b9b3361

Ответ 1

Я попытался воссоздать это, и .someclass.notip генерировалось для меня, но .someclass:not(.notip) не было, поскольку у меня не было определения @mixin tip(). Как только у меня это получилось, все сработало.

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/ - это хорошее место для отладки вашего SASS, потому что оно дает вам сообщения об ошибках. Undefined mixin 'tip'. Это то, что я получаю, когда удаляю @mixin tip($pos:right) { }