简体   繁体   English

如何结合两个SCSS选择器?

[英]How to combine two SCSS selectors?

I want to give a different color to the element if either of the two conditions exists. 如果两个条件中的任何一个存在,我想给元素赋予不同的颜色。 Here is the code: 这是代码:

  .btn-link{
    color: $color-black;
    margin: 0;

  &:hover{
    color: $color-light-blue;
  }
  &:not(.collapsed){
    color: $color-light-blue;
  }
}

Everything is good, but it will be better if you can combine the two selectors 一切都很好,但是如果您可以将两个选择器组合在一起会更好

I already tried: 我已经尝试过:

 &:hover&:not(.collapsed){
        color: $color-light-blue;
      }

But only the hover is identified 但只有hover被识别

Same way as you do in CSS: 与使用CSS的方式相同:

&:hover, &:not(.collapsed) {
    color: $color-light-blue;
}

This sets the color only if the element is in a hover state or doesn't have the class collapsed . 仅当元素处于悬停状态或未 collapsed类时,才设置颜色。

You can put a comma between the two combining selectors, like this: &:hover, &:not(.collapsed) { 您可以在两个组合的选择器之间放置一个逗号,例如: &:hover, &:not(.collapsed) {

Full example: 完整示例:

HTML: HTML:

<span class="btn-link">one class</span>
<span class="btn-link collapsed">two class</span>

CSS: CSS:

$color-black: black;
$color-light-blue: lightblue;

.btn-link {
  color: $color-black;
  margin: 0;
  &:hover, &:not(.collapsed) {
    color: $color-light-blue;
  }
}

JSfiddle . JSfiddle

Sorry, no StackSnippet. 抱歉,没有StackSnippet。 We still can't handle SCSS here! 我们仍然不能在这里处理SCSS!

You can try this simple change your code 您可以尝试此简单的更改代码

 /*SCSS*/ $color-light-blue : red; .btn-link { &:hover:not(.collapsed) { color: $color-light-blue; } } /*compiled CSS*/ .btn-link:hover:not(.collapsed) { color: red; } 
 <span class="btn-link">one class</span> <span class="btn-link collapsed">two class</span> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM