SASS&;身体?不起作用,但&;。班上有

SASS&;身体?不起作用,但&;。班上有,sass,Sass,对于以下SASS,如果a类也有b类,则应用的颜色为蓝色 但是,当body元素具有class-a时,我希望颜色为红色,但这会导致错误 .class-a { &.class-b { color: blue; } &body { color: red; } } 目前这是不可能的 当前,&在语法上与元素选择器相同,因此它不能与元素选择器一起显示。我认为这有助于澄清在哪里可以使用它;例如,foo&bar永远不会是有效的选择器

对于以下SASS,如果a类也有b类,则应用的颜色为蓝色

但是,当body元素具有class-a时,我希望颜色为红色,但这会导致错误

.class-a {
    &.class-b {
        color: blue;
    }
    &body {
        color: red;
    }
}

目前这是不可能的

当前,&在语法上与元素选择器相同,因此它不能与元素选择器一起显示。我认为这有助于澄清在哪里可以使用它;例如,foo&bar永远不会是有效的选择器(或者可能等同于foo&bar或foo&bar)

有人在讨论如何改变这种行为,但要使其成为Sass的一部分,可能还有很长的路要走

与此同时,你真正能做的就是:

.class-a {
    &.class-b {
        color: blue;
    }
}

body.class-a {
    color: red;
}

您的意思可能是
和.class-b
,这将导致
.class-b.class-b
?即使这在Sass中起作用,选择器也将生成
.class-abody
,而不是所需的
正文.class-a
。您需要将其写成
body&
而不是
&body
@Christoph是的,很抱歉,已经更新了我的问题。@cimmanon那么有没有一种方法可以在.class-a中嵌套一个选择器,当它也有class-a的类时,该选择器以body元素为目标?您是否正在寻找一个?或者您只需要一个
主体.class-a
选择器?