循环变量中的SASS循环

时间:2017-12-01 18:36:35

标签: css loops sass

我试图循环循环,第一个循环是一个列表,第二个循环是一个sass映射。列表中的项目代表sass地图。问题是,在第二个循环中,如果我只是在#{$ event_type}前添加$,则会抛出错误。我应该以不同的方式接近这个吗?

清单:

$event_list: 'summit', 'awards', 'awards-europe', 'other';

示例地图:

 $awards: (
   content-marketing: #F47521,
   digiday: #FFDD00,
   publishing: #89C63F,
   signal: #33AADB,
   video: $pink
 );

破碎循环:

 @each $event_type in $event_list {

    @each $event, $color in #{$event_type} {

        &.#{$event_type}-#{$event} {

            section h2, h3 {
                color: #{$color};
                border-color: #{$color};
            }

            // More CSS
        }
    }
 }

1 个答案:

答案 0 :(得分:1)

使用多地图结构可能更好:

$event_list: (
  'summit': (
    key1: #000,
    key2: #fff
  ),
  'awards': (
    content-marketing: #F47521,
    digiday: #FFDD00,
    publishing: #89C63F,
    signal: #33AADB,
    video: $pink
  )
);

循环大致相同:

// Note the added $map variable.
@each $event_type, $map in $event_list {

  @each $event, $color in $map {

    &.#{$event_type}-#{$event} {
      section h2, h3 {
        color: #{$color};
        border-color: #{$color};
      }

      // More CSS
    }
  }
}

SassMeister Demo