我在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。
答案 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) { }