Sass:从嵌套映射中获取值和键

时间:2015-04-22 16:59:02

标签: css sass libsass

我正在尝试从Sass中的嵌套地图中获取值和键(特别是使用libsass)。

我已经成功遍历父地图,但我需要获取每个子地图中每个项目的值和键。

这一切都在Sassmeister上,这可能是最容易看到它的地方:http://sassmeister.com/gist/04ba839b0edff4b84a93

我的地图:

$grids: (
  2: (
    $med-2: 2,
  ),
  3: (
    $med-2: 2,
    $max-width: 3
  ),
  4: (
    $med-2: 2,
    $med-3: 3,
    $max-width: 4
  ),
  5: (
    $med-2: 2,
    $med-3: 3,
    $large-1: 4,
    $max-width: 5
  ),
  6: (
    $med-2: 2,
    $med-3: 3,
    $large-1: 5,
    $max-width: 6
  )
);

我的混音:

@mixin media-grid($base-class: "media-grid") {
  .#{$base-class} {
    border: 1px solid black;
  }

  @each $cols, $bp in $grids {
    .#{$base-class}--#{$cols} li {

       @for $i from 1 through length($bp) {
          @media ( min-width: map-deep-get($grids, $cols, $i) ) {
           // min-width: Should be the key. $i is certainly incorrect.
           max-width: 100/$cols + %;
          // Instead of $cols, should divide by the value
          }
       }

    }
  }
}

供参考:也是其中的一部分,但功能正常:

@function map-deep-get($map, $keys...) {
    @each $key in $keys {
        $map: map-get($map, $key);
    }
    @return $map;
}

0 个答案:

没有答案