Как передать переменную в SCSS / CSS из имени класса HTML? - PullRequest
0 голосов
/ 04 февраля 2020

Что я хочу сделать, так это

HTML

<div class="custom-color--ff0000">Red</div>
<div class="custom-color--00ff00">Green</div>
<div class="custom-color--0000ff">Blue</div>

CSS

.custom-color--(hex) {
  color:  '#' + (hex);
}

Возможно ли это сделать? Мне нужен Sass?

Ответы [ 2 ]

2 голосов
/ 04 февраля 2020

Вы можете использовать миксин для генерации классов модификаторов в SASS:

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

  &--#{$string} {
    color: unquote('#' + $argument);
  }
}

пример:

.custom-color {
  @include add-color(404145);
  @include add-color(ff0000);
}

вывод в CSS:

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

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

Подробнее об этом здесь: Генерация всех ваших служебных классов с помощью Sass Maps

0 голосов
/ 04 февраля 2020

Не знаю, почему вы хотите это сделать, но я думаю, что вы можете добиться аналогичного, используя CSS пользовательские свойства .

Например:

HTML

<div class="custom-color" style="--red: #ff0000">Red</div>
<div class="custom-color" style="--green: #00ff00">Green</div>
<div class="custom-color" style="--blue: #0000ff">Blue</div>

CSS

.custom-color {
  color:  var(--red); // or what color you want
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...