Sass:选择具有多个嵌套选择器的父元素

Shp*_*ord 4 css sass css-selectors

这是我最终要做的事情:

.books, .dvds, .magazines {
  article &.books {
    /* Wanting the selector to only be ".books article" */
  }
  article {
    /* Can apply to any of the `article` tags under .books, .dvds and .magazines */
  }
}
Run Code Online (Sandbox Code Playgroud)

我有一些嵌套的选择器,而不是打破一个新的.books article选择器,我想保持它们嵌套,但仍然只有目标article元素.books.

我确实尝试了这个,它确实有效,但输出.books.books article是多余的,让我感到畏缩:

.books, .dvds, .magazines {
    &.books article {
        /* Outputs ".books.books article, .dvds.books article, .magazines.books article"...boooo, hisssss */
    }
}
Run Code Online (Sandbox Code Playgroud)

Jac*_*kie 18

更像是什么:

article {

  .books &,
  .dvds &,
  .magazines & {
    /* book, dvd, magazine shared stuff */
  }

  .books & {
    /* book stuff */
  }

}
Run Code Online (Sandbox Code Playgroud)

编译为:

.books article, .dvds article, .magazines article {
  /* book, dvd, magazine shared stuff */
}
.books article {
  /* book stuff */
}
Run Code Online (Sandbox Code Playgroud)