简体   繁体   English

SCSS:在@each 中使用动态变量

[英]SCSS: use dynamic variable inside @each

I am using SCSS to loop over each size and create individual classes.我正在使用 SCSS 循环遍历每个大小并创建单独的类。

File: styles.scss文件:styles.scss

@import 'variables';

$font-list: xxl xl l m s xs;
@each $size in $font-list {
  .font-#{$size} {
    font-size: font-#{$size};
  }
}

File: _variable.scss文件:_variable.scss

// Font sizes
$font-xxl: 21px !important;
$font-xl: 18px !important;
$font-l: 16px !important;
$font-m: 14px !important;
$font-s: 12px !important;
$font-xs: 10px !important;

Expected result of above code is:上述代码的预期结果是:

.font-xxl{
 font-size:  $font-xxl;
}
.font-xl{
 font-size:  $font-xl;
}
.font-l{
 font-size:  $font-l;
}
.font-m{
 font-size:  $font-m;
}
.font-s{
 font-size:  $font-s;
}
.font-xs{
 font-size:  $font-xs;
}

But the actual code I get is:但我得到的实际代码是:

.font-xxl {
  font-size: font-xxl;
}

.font-xl {
  font-size: font-xl;
}

.font-l {
  font-size: font-l;
}

.font-m {
  font-size: font-m;
}

.font-s {
  font-size: font-s;
}

.font-xs {
  font-size: font-xs;
}

Use a map:使用 map:

$font-sizes: (
  xxl: 21px,
  xl:  18px,
  l:   16px,
  m:   14px,
  s:   12px,
  xs:  10px
);

$font-list: xxl xl l m s xs;

@each $size in $font-list {
  .font-#{$size} {
    font-size: map-get($font-sizes, $size) !important;
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM