首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Sass将父选择器追加到末尾

使用Sass将父选择器追加到末尾
EN

Stack Overflow用户
提问于 2013-04-19 23:25:46
回答 1查看 3.4K关注 0票数 15

好的,假设我有以下传统的CSS

代码语言:javascript
复制
.social-media { /* ... */ }
.social-media .twitter { /* ... */ }
.social-media .facebook { /* ... */ }
ul.social-media { /* ... */ }

所以,我试着用SCSS这样做:

代码语言:javascript
复制
.social-media {

    /* ... */

    .twitter { 
        /* ... */
    }
    .facebook {
        /* ... */
    }

    // Here's the problem:
    ul& {
        /* ... */
    }
}

最后一部分不起作用,因为它看起来应该只出现在选择器的开头。有解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-19 23:29:01

Sass 3.2及更早版本

你唯一能做的就是反转你的嵌套,或者根本不嵌套:..social media{

代码语言:javascript
复制
    /* ... */

    .twitter { 
        /* ... */
    }
    .facebook {
        /* ... */
    }
}

ul.social-media {
    /* ... */
}

Sass 3.3及更高版本

您可以使用插值和@at-root指令来完成此操作:

代码语言:javascript
复制
.social-media {
    /* ... */

    // Here's the solution:
    @at-root ul#{&} {
        /* ... */
    }
}

但是,如果您的父选择器包含多个选择器,则需要使用selector-append

代码语言:javascript
复制
.social-media, .doodads {
    /* ... */

    // Here's the solution:
    @at-root #{selector-append(ul, &)} {
        /* ... */
    }
}

输出:

代码语言:javascript
复制
.social-media, .doodads {
  /* ... */
}
ul.social-media, ul.doodads {
  /* ... */
}
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16108103

复制
相关文章

相似问题

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