SASS :not选择器

63

我在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。


请确保您提供了足够的代码以使其能够编译(缺少变量、混合等)。此外,该问题无法重现。 - cimmanon
1个回答

89

我尝试重新创建此内容,对于我而言生成了.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) { }时遇到的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接