【问题标题】:SASS &body? does not work but &.class does萨斯&身体?不起作用,但 &.class 可以
【发布时间】:2013-08-15 06:22:04
【问题描述】:

对于下面的 SASS,当 class-a 也有 class-b 时,应用的颜色是蓝色。

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

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

【问题讨论】:

  • 您的意思是不是&.class-b 会导致.class-b.class-b
  • 即使这在 Sass 中有效,选择器也会生成为.class-abody,而不是所需的body.class-a。您需要将其写为 body& 而不是 &body
  • @Christoph 是的,抱歉,更新了我的问题。
  • @cimmanon 那么有没有办法在 .class-a 中嵌套一个选择器,当它也有 class-a 的类时,它以 body 元素为目标?
  • 您在寻找parent selector 吗?还是您只想要一个body.class-a 选择器?

标签: sass


【解决方案1】:

目前这是不可能的。

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

正在讨论改变这种行为,但要成为 Sass 的一部分可能还有很长的路要走。

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

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

body.class-a {
    color: red;
}

【讨论】:

    猜你喜欢
    • 2017-09-16
    • 2011-01-09
    • 2011-01-16
    • 1970-01-01
    • 2012-02-01
    • 2017-11-29
    • 2012-11-30
    • 2016-03-06
    相关资源
    最近更新 更多