首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SASS嵌套父选择器串联?

SASS嵌套父选择器串联?
EN

Stack Overflow用户
提问于 2013-03-29 17:28:18
回答 1查看 2.5K关注 0票数 2

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

代码语言:javascript
复制
.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语法优先):

代码语言:javascript
复制
.class-1, .class-2, .class-3
    z-index: 1
    &-et-cetera
        z-index: 5

SCSS语法:

代码语言:javascript
复制
.class-1, .class-2, .class-3 {
    z-index: 1;
    &-et-cetera {
        z-index: 5;
    }
}

唯一的问题是,这是行不通的。我试着在&之后处理文本...像&#{"-et-cetera"}&#{-et-cetera}& + "-et-cetera"这样的东西...你明白了吧。

我想这是可能的,但似乎找不到。有什么办法可以做到吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-29 22:21:23

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

代码语言:javascript
复制
<div class="class-1 et-cetera"></div>
<div class="class-1"></div>
<div class="class-2 et-cetera"></div>
<div class="class-3"></div>
...

代码语言:javascript
复制
.class-1, .class-2, .class-3
  z-index: 1

.et-cetera 
  z-index: 5

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

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

代码语言:javascript
复制
.class-1, .class-2, .class-3
  z-index: 1
  &.et-cetera 
    z-index: 5

这将为您提供:

代码语言:javascript
复制
.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做到这一点,你可以这样做,我不推荐这样做:

代码语言:javascript
复制
%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

我认为只使用两个不同的类要容易得多,灵活得多,而且面向未来。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15700584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档