Html 如何使用if语句在SCSS中查找类名?

Html 如何使用if语句在SCSS中查找类名?,html,css,if-statement,sass,scss-mixins,Html,Css,If Statement,Sass,Scss Mixins,我有两门不同的课。一个是管理员,一个是用户 <div class="admin"> ... </div> <div class="user"> ... </div> $color : red !default; @if('.admin'){ $color : red; } @else { $color : green; } input{ border-color : $color; color : $color

我有两门不同的课。一个是管理员,一个是用户

<div class="admin"> ... </div>
<div class="user"> ... </div>

$color : red !default;

@if('.admin'){
    $color : red;
} @else {
    $color : green;
}

input{
    border-color : $color;
    color : $color;
}

div{
    background : $color;
}
。。。
... 
$color:红色!违约
@如果('.admin'){
$颜色:红色;
}@else{
$颜色:绿色;
}
输入{
边框颜色:$color;
颜色:$color;
}
div{
背景:颜色;
}
我想做输入边框颜色动态。若父类为admin,则输入边框颜色为白色;若父类为user,则输入边框颜色为黑色


这只是一个例子,在我的项目中,有两种类型的登录,并且希望在使用父类时更改很多内容。

您可以像这样嵌套这些类。“&”表示如果父类是this(admin或user),则让输入具有此
边框颜色。对于我来说,假设我将为
admin
input
执行css,如果有任何条件,比如如果父项不在,修改
input
的外观,我将它们嵌套在里面,以便将它们全部放在一个地方,用于特定的id、类或直接标记

.admin { 
  background : red; 
}

.user { 
  background : green; 
}

input {
  border-color: deepskyblue;

  .admin & {
    border-color: white;
  }

  .user & {
    border-color: black;
  }
}

使用if语句只是因为我的代码太长。我已经为颜色、边框颜色和框阴影应用了许多css<代码>输入{border color:red;color:red}文本区域{border color:red}
在sass中,除非用于函数,否则不会真正使用
if
。如果您觉得在sass中需要
if
,则可能是错误的做法。你能发布一个带有“大量css”的类的真实例子吗?
$color:red!违约@如果('.admin'){$color:red;}@else{$color:green;}输入{border color:$color;color:$color;}div{background:$color;}
@smartsense designer好的,您可以像基于主题那样做,但不确定如何根据状态更改“主题变量”?据我所知,你别无选择,只能使用我的解决方案,或Sandeep解决方案。这取决于偏好。是的。这两个都是正确的解决方案,但我已经有4000行的scss代码。我有两种登录方式。在使用父类时,我的SCS应用于整个文件。所以这个解决方案不适合我。我想使用if语句查找类名,这样我就可以在整个文件中动态应用颜色名。如果用户的登录名大于应用X颜色,管理员的登录名大于应用Y颜色。虽然此代码可能会回答此问题,但提供有关如何和/或为什么解决此问题的其他上下文将提高答案的长期值。该If语句中的可能重复使用变量。在我的例子中,在if语句中查找类名。所以这两个都是不同的东西。我想你是以错误的方式处理问题的,我参考了我的答案。是否可以在if语句中使用find class name应用css?不,不是以你希望的方式。
.admin{ 
    background : red; 
    input{
        border-color:#fff;
    }
}
.user{ 
    background : red; 
    input{
        border-color:#000;
    }
}