@Sectorrbs

Как в SCSS разделить строку на отдельные части?

Нужно сделать специальный миксин на препроцессоре SCSS. Суть в том, что на вход нужно передать через @include строку вида (10, 20) ну или (10px, 20px). В полном виде миксин примерно так должен выглядеть: @include font( (10px, 20px), 600, 24px ). Вот этих два значения в скобках (10px,20px) в миксине принимаются как одна переменная. И вот нужно этих два значения уже в миксине разделить на два независимых значения. Можно ли так как-нибудь сделать силами SCSS?
  • Вопрос задан
  • 158 просмотров
Пригласить эксперта
Ответы на вопрос 2
@alekcena
Нелинейный наставник
Использовать пробел, Не использовать скобки. Открыть документацию где есть примеры с 2мя переменными.
Ответ написан
Комментировать
@SergeiB
Можно ли так как-нибудь сделать силами SCSS

Да, для списка есть соответствующий метод: nth($list, $n). Например:

@mixin font($font-size, $font-weight, $anotherValue: null) {
  $length: length($font-size);
  
  @if $length > 2 {
    @warn "Too many values: #{$font-size}."
  }
  
  @if $length == 1 {
    font-size: $font-size;
  }
  
  @if $length == 2 {
    $size1: nth($font-size, 1);
    $size2: nth($font-size, 2);
    
    font-size: $size1;
    
    @media (min-width: 768px) {
      font-size: $size2;
    }
  }
  
  font-weight: $font-weight;
}

// одно значение
.element1 {
  @include font(24px, 700);
}

// два значения
.element2 {
  @include font(24px 32px, 700);
  // или если хочется разделить запятой:
  @include font((24px, 32px), 700);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы