SASS:不是选择器

时间:2014-03-26 02:17:46

标签: css sass compass-sass

我在SASS mixin中有一个:not css选择器,但它没有做任何事情:

代码段:

@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。

1 个答案:

答案 0 :(得分:58)

我尝试重新创建此内容,并且.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(); }

编辑: http://sassmeister.com/是调试SASS的好地方,因为它会为您提供错误消息。 Undefined mixin 'tip'.我删除@mixin tip($pos:right) { }

后得到的内容