仅在SCSS中选择一个类

时间:2015-11-06 11:38:16

标签: sass

我使用以下代码将样式应用于嵌套在.twitter-类中的所有类:

    a[class^="twitter-"] {
        margin-right: 5px;
        opacity: .8;

        &:before {
            margin-right: 5px;
        }

        &:hover {
            opacity: 1;
        }
    }

在twitter下有一些课程,例如:.twitter-reply.twitter-retweet以及.twitter-fav

我想要一个5px的右边距应用于所有twitter-*类,但.twitter-fav除外 - 请参阅下面的示例:

<div class="twitter-reply">Example</div>
<div class="twitter-retweet">Example</div>
<div class="twitter-fav">Example</div>

我尝试过研究它,但找不到正确的术语。

4 个答案:

答案 0 :(得分:0)

我实际上设法通过使用last-child来解决此问题,如下例所示:

a[class^="twitter-"] {
        margin-right: 5px;

        &:before {
            margin-right: 5px;
        }

        &:hover {
            opacity: 1;
        }

        &:last-child{
            margin-right: 0;
        }
    }

答案 1 :(得分:0)

最有效的方法是利用$config['log_path'] = BASEPATH.'logtest';

:not()

这会将a[class^="twitter-"] { // your other styles &:not(.twitter-fav) { margin-right: 5px; } } 应用于除margin-right: 5px;以外的所有Twitter链接。

答案 2 :(得分:0)

如果你想在.twitter-类的元素之间加上一些余量,但你不确定哪一个是最后一个元素,你可以尝试使用它:

[class^=twitter-"] {
    & + a[class^=twitter-"] {
        margin-left: 5px;
    }
}

加号选择紧接在前一个选择器之后的元素

答案 3 :(得分:-1)

从我的理解你想要嵌套多个类,对吗? 那么,.twitter-*类中a[class^="twitter-"] { .twitter-fav { // Your styling } margin-right: 5px; opacity: .8; } 类的元素应该会收到额外的样式部分,对吗?

如果是这样的话:

<div class="twitter-whatever">
  <div class="twitter-fav">
  </div>
</div>

这会影响所有元素,如:

>df <- df %>% gather(type,score,starts_with("story"))
>df$movement<-ifelse(df$score ==0 ,"Neutral",ifelse(df$score < 0 ,"Negative","Positive"))
>xtabs(~df$type+df$movement)

                      df$movement
  df$type             Negative Neutral Positive
  story_title              1       3        1
  story_description        3       0        2
  story_body               1       1        3

享受。