如何将变量从 HTML 的类名传递到 SCSS/CSS?

Lor*_*enz 1 html css sass

我想做的是这样的

超文本标记语言

<div class="custom-color--ff0000">Red</div>
<div class="custom-color--00ff00">Green</div>
<div class="custom-color--0000ff">Blue</div>
Run Code Online (Sandbox Code Playgroud)

CSS

.custom-color--(hex) {
  color:  '#' + (hex);
}
Run Code Online (Sandbox Code Playgroud)

是否有可能做到这一点?我需要萨斯吗?

小智 5

您可以使用 mixin 在 SASS 中生成修饰符类:

@mixin add-color($argument) {
  $string: unquote($argument);

  &--#{$string} {
    color: unquote('#' + $argument);
  }
}
Run Code Online (Sandbox Code Playgroud)

例子:

.custom-color {
  @include add-color(404145);
  @include add-color(ff0000);
}
Run Code Online (Sandbox Code Playgroud)

CSS 输出:

.custom-color--404145 {
  color: #404145;
}

.custom-color--ff0000 {
  color: #ff0000;
}
Run Code Online (Sandbox Code Playgroud)

在这里阅读更多相关内容: Generate Your All Utility Classes with Sass Maps