是否可以使用SCS(或SASS)将同一类添加到多个元素中,但每个元素的样式不同?

是否可以使用SCS(或SASS)将同一类添加到多个元素中,但每个元素的样式不同?,sass,Sass,这就是我想要的: select .ia-loading { border: 2px solid blue; } input .ia-loading { border: 2px solid orange; } 类似这样的代码(此代码不起作用,它会引发错误): .ia-loading { select.& { border: 2px solid blue; } input.& { border: 2px solid orange; } } sele

这就是我想要的:

select .ia-loading { border: 2px solid blue; }
input .ia-loading { border: 2px solid orange; }
类似这样的代码(此代码不起作用,它会引发错误):

.ia-loading {
  select.& {
    border: 2px solid blue;
  }
  input.& {
    border: 2px solid orange;
  }
}
select.ia-loading { border: 2px solid blue; }
input.ia-loading { border: 2px solid orange; }
获取此信息:

.ia-loading {
  select.& {
    border: 2px solid blue;
  }
  input.& {
    border: 2px solid orange;
  }
}
select.ia-loading { border: 2px solid blue; }
input.ia-loading { border: 2px solid orange; }
我尝试过几种组合,但没有一种有效:

这个:

生成此css,这不是我想要的:

select .ia-loading { border: 2px solid blue; }
input .ia-loading { border: 2px solid orange; }
这个:

抛出此错误:

"&" may only be used at the beginning of a compound selector.

非常感谢。

您在输入和选择后面使用“&”的原因是什么? 它只在你想有一个特定的“动作”时使用,比如悬停、活动等等

范例

.ia-loading
   &:hover
      color: #FFF
在Sass中,也不能使用括号,这是在scss中使用的

我也不认为你可以按照你想要的方式来做。应该这样做:

.ia-loading
    border: 2px solid
select
   .ia-loading
      border-color: blue
input
   .ia-loading
      border-color: orange

你可以这样做:

@mixin test($elem) {
  #{$elem}.test {
    @content;
  }
}
如果你真的想在你的类中使用它,你可以使用自Sass 3.3以来的
@at root
指令(否则你就把它放在你的主类之外)


你有什么问题?此代码不正确?是@Parhum,它是,console显示此错误:
error styles.scss(_forms.scss的第11行:“select.”后的CSS无效:预期的类名为“&{”)
。抱歉@Sharpless512,我从未使用过SASS旧语法,所以SASS对我来说代表SCSS。我编辑了问题,明确提到了SCSS。关于您的其余答案,“这不可能”对我来说是正确的答案。您确定这不可能吗?非常感谢。如果您使用SASS代码,它会理解有一个div加载类.ia时,他们有一个子选择或输入。这不是您想要的。类应该“附加”到输入和选择,而不是其他方式。因此,不,出于您的目的,这是不可能的。了解sass和scss的一个好工具是: