7

我有以下 Sass 占位符,我想扩展它。

%btn
  // ...button styling...
  &[disabled], &.btn--disabled
    color: red

.btn-primary
  @extend %btn

CSS 输出如下:

 [disabled].btn-primary, .btn--disabled.btn-primary{ color: red; }

当我想获得以下信息时:

 .btn-primary[disabled], .btn-primary.btn--disabled { color: red; }

我不明白为什么输出顺序与指定的顺序不同。我该如何改变呢?

4

1 回答 1

4

我认为您所追求的是以下内容:

%btn[disabled], %btn.btn--disabled
    color: red

.btn-primary
    @extend %btn

为了帮助概念化生成的 CSS 的结构是什么,请记住这%placeholder是一个将被选择器替换的标记@extend

编辑

实际上,这仍然输出

[disabled].btn-primary, .btn--disabled.btn-primary {
    color: red; }

我没想到...在语法上,[disabled].btn-primary与 相同.btn-primary[disabled],但令人讨厌的是源顺序没有得到尊重。

这是我发现的描述此行为的错误报告(显然,这就是@extend工作原理):

于 2013-09-12T11:45:03.350 回答