2

好的,这是我想要得到的输出:

.class-1, .class-2, .class-3 {
    z-index: 1;
}

.class-1-et-cetera, .class-2-et-cetera, .class-3-et-cetera {
    z-index: 5;
}

我想通过嵌套一个选择器并使用 SASS&来获取父选择器。所以我一直在尝试这样的事情(首先是SASS语法):

.class-1, .class-2, .class-3
    z-index: 1
    &-et-cetera
        z-index: 5

SCSS 语法:

.class-1, .class-2, .class-3 {
    z-index: 1;
    &-et-cetera {
        z-index: 5;
    }
}

唯一的问题是,这不起作用。我尝试在&...之后弄乱文本,例如&#{"-et-cetera"}, &#{-et-cetera}, & + "-et-cetera"... 你明白了。

以为有可能,但似乎找不到。有什么办法吗?

4

1 回答 1

6

考虑利用元素可以有多个类的事实。

<div class="class-1 et-cetera"></div>
<div class="class-1"></div>
<div class="class-2 et-cetera"></div>
<div class="class-3"></div>
...

.class-1, .class-2, .class-3
  z-index: 1

.et-cetera 
  z-index: 5

这是较少的 CSS,使用 Sass 或其他方式。

如果你需要额外的特殊性,你总是可以像这样嵌套它:

.class-1, .class-2, .class-3
  z-index: 1
  &.et-cetera 
    z-index: 5

这会给你:

.class-1, .class-2, .class-3 {
    z-index: 1;
}
.class-1.et-cetera, .class-2.et-cetera, .class-3.et-cetera {
    z-index: 5;
}

编辑

如果你真的想用 Sass 来做,你可以这样做,我不建议这样做:

%class
  z-index: 1

%etc
  z-index: 5

@each $i in class-1, class-2, class-3
  .#{$i}
    @extend %class
  .#{$i}-et-cetera
    @extend %etc

我认为只使用两个不同的类会更容易、更灵活且面向未来。

于 2013-03-29T14:21:22.837 回答