正确使用&。在 SCSS 中

Correct usage of &. in SCSS

& 的正确用法是什么。在 SCSS 中

在 SCSS 文件中,使用 & 有什么区别?而不是 .

.text-field {
  .loading {
    -----
  }
  
  &.error {
    ------
  }
}

如果你使用

&.error

css编译为:

.text-field.error

而如果您不使用 &(如在您的加载示例中),则编译结果为:

.text-field .loading

这意味着在第一个示例中,您期望在同一个 'parent' dom 元素上出现错误 class,而在后者中,您期望其中的子元素应该有 class loading.

所以,没有正确的用法,看你想达到什么效果。

& 会将它后面的任何内容加入父级 class。

在您的示例中,这意味着 &.error 将评估为 .text-field.error - 将应用于具有 text-fielderror [=32] 的任何元素的样式=]es.

.loading class 然而将计算为 .text-field .loading - 因此具有加载 class 的元素具有具有 text-field class.

您也可以在没有 . 的情况下使用 &,例如:

.text-field {
  &--loading {
    // styles
  }
}

将计算为单个 text-field--loading class.