使用sass映射键作为变量

使用sass映射键作为变量,sass,Sass,我正在为汉堡包菜单开发一个实用程序/助手类,这需要一些数学知识来正确计算条间距。我尝试使用嵌套列表循环浏览条形码大小-2(px)和3(px),以及3种不同大小的间距。我正试图从映射键(2,3)中提取菜单行大小,但在执行此操作时遇到了一些问题。现在,$px变量输出整个列表,有没有办法让它将键作为整数(2和3)输出 $菜单:( 2: (s:14,m:19,l:22), 3:(s:22,m:25,l:29) ); @$menus中的每个$menu{ @$menu中的每个$key、$sz{ .menu-

我正在为汉堡包菜单开发一个实用程序/助手类,这需要一些数学知识来正确计算条间距。我尝试使用嵌套列表循环浏览条形码
大小-2(px)
3(px)
,以及3种不同大小的间距。我正试图从映射键(2,3)中提取菜单行大小,但在执行此操作时遇到了一些问题。现在,
$px变量
输出整个列表,有没有办法让它将键作为整数(2和3)输出

$菜单:(
2: (s:14,m:19,l:22),
3:(s:22,m:25,l:29)
);
@$menus中的每个$menu{
@$menu中的每个$key、$sz{
.menu-#{$px}px-#{$key}{
$菜单高度:$sz*1px;
$menu行:$px*1px;
$menu space:($menu height-($menu line*3))/2;
高度:$菜单高度;
宽度:$菜单高度*1.33;
跨度{
&,&:before,&:after{height:$menu line;}
&{页边空白:$menu space+$menu line;}
&:在{margin top:-$menu space;}之前
&:在{margin top:$menu space;}之后
}
}
}
}
我希望循环输出六个菜单类,如下所示:

.menu-2px-s {
      $menu-height: 14px;
      $menu-line: 2px;
      ...
}
.menu-2px-m {
      $menu-height: 19px;
      $menu-line: 2px;
      ...
}
.menu-2px-l {
      $menu-height: 22px;
      $menu-line: 2px;
      ...
}
.menu-3px-s {
      $menu-height: 22px;
      $menu-line: 2px;
      ...
}
.menu-3px-m {
      $menu-height: 25px;
      $menu-line: 2px;
      ...
}
.menu-3px-l {
      $menu-height: 29px;
      $menu-line: 2px;
      ...
}

您需要在第一次迭代中获得密钥。您还使用了一个未定义的变量
$px

$menus: (
  2: ( s: 14, m: 19, l: 22),
  3: ( s: 22, m: 25, l: 29)
);
@each $num, $menu in $menus {
  @each $key, $sz in $menu {
    .menu-#{$num}px-#{$key} {
      $menu-height: $sz * 1px;
      $menu-line: $num * 1px;
      $menu-space: ($menu-height - ($menu-line*3))/2;

      height: $menu-height;
      width: $menu-height*1.33;

      span {
        &, &:before, &:after { height: $menu-line; }
        & { margin-top: $menu-space + $menu-line; }
        &:before { margin-top: -$menu-space; }
        &:after { margin-top: $menu-space; }
      }
    }
  }
}

我对你想要什么有点困惑。你能举一个你想要达到的目标的例子吗?总之,我得到了14个:
。class{property:mapget(mapget($menumes,2),s)}
。用期望的结果更新了我的帖子完美,谢谢!当我在第一次迭代中既有$num/key又有$menu时,我对如何进行新的迭代感到困惑