在Sass中,如何引用带有&符号的两个父类来复合元素?

时间:2014-09-26 03:45:05

标签: sass

使用方法found here,它可以工作,但不适用于两个父类。

例如:

.one, .two {
  @at-root a#{&} {
    color: blue;
  }
}

产地:

a.one, .two {
  color: blue;
}

而非预期:

a.one, a.two {
  color: blue;
}

有没有办法使用类似的方法获得预期的结果?

2 个答案:

答案 0 :(得分:2)

您想要使用selector-append()功能:

.one, .two {
  @at-root #{selector-append(a, &)} {
    color: blue;
  }
}

在父选择器上使用插值会导致Sass将其评估为字符串(因为这是插值所做的)。这只有在您拥有单个选择器时才可以使用。 selector-append(以及所有其他selector- *函数)将选择器评估为选择器列表,将所需项目附加到列表中的每个选择器。

答案 1 :(得分:-3)

或者您只需切换到手写笔:

.one,
 .two {
   a& {
   color: blue;
 }
}

Codepen Example