Можно ли использовать фрагмент в цикле карты Sass, чтобы начать цикл во втором экземпляре?

У меня есть карта точек останова следующим образом:

$grid-breakpoints: (
    xs: 0,
    sm: 568px,
    md: 768px,
    lg: 992px,
    xl: 1280px,
    xxl: 1500px
) !default;

И мне нужно зациклить их, однако я хочу начать цикл на sm точки останова. Вот мой текущий цикл:

@each $name, $value in $grid-breakpoints {
    @include media-breakpoint-up(#{$name}) {
        @for $i from 1 to 13 {

            .. stuff here

        }
    }
}

До сих пор я не смог найти его, но есть ли способ отрегулировать мою начальную линию выше, чтобы она была примерно такой:

@each $name, $value in $grid-breakpoints[2:] {

ура

2 ответа

Вы можете проверить номер индекса в вашем цикле и, если он> 1, сделать что-то:

$grid-breakpoints: (
    xs: 0,
    sm: 568px,
    md: 768px,
    lg: 992px,
    xl: 1280px,
    xxl: 1500px
) !default;

@each $name, $value in $grid-breakpoints {
  $i: index($grid-breakpoints, $name $value);

  @if $i>1{

    do something...

  }
}

Вы можете использовать функцию удаления карты, которая принимает ArgList в качестве второго параметра.

Демо (SassMeister)

$grid-breakpoints: (
    xs: 0,
    sm: 568px,
    md: 768px,
    lg: 992px,
    xl: 1280px,
    xxl: 1500px
) !default;


@each $name, $value in map-remove($grid-breakpoints, 'xs', 'sm') {
  .. stuff here
}
Другие вопросы по тегам