使用在 scss 中应用 font-size 的 for 循环增加标题和变量
Increment headings and variables using a for loop that apply's font-size in scss
我正在尝试遍历所有 6 个标题并通过来自 6 个 font-size 变量的混合应用 font-size。但是我一直得到一个未定义的变量。它没有识别变量增量。我做错了什么还是这根本不可能?无论如何,在我的脑海中似乎很简单他是 link 到 sassmeister 感谢您的帮助或见解
//变量
$font-h1: 40px;
$font-h2: 28px;
$font-h3: 24px;
$font-h4: 20px;
$font-h5: 18px;
$font-h6: 14px;
//混合
@mixin font-size($size) {
font-size: $size;
}
@for $i from 1 through 6 {
h#{$i} {
// font-size: #{$i};
@include font-size( $font-h#{$i} );
}
}
// 预期结果
h1 {
font-size: 40px
}
etc...
// 实际输出
Undefined variable: "$font-h".
您可以尝试重构您的 var 并使用数组或使用 map fn。
例如:
$font-h: 40px, 28px, 24px, 20px, 18px, 14px;
@mixin font-size($size) {
font-size: $size;
}
@for $i from 1 through length($font-h) {
$font: nth($font-h, $i);
h#{$i} {
@include font-size($font);
}
}
我会选择 map,因为它更灵活——例如:
$font-size:(
h1 : 40px,
h2 : 28px,
h3 : 24px,
h4 : 20px,
h5 : 18px,
h6 : 14px
);
@each $header, $size in $font-size {
#{$header}{ font-size: $size; }
}
// Bonus
// If you need to apply a font-size to another
// element you can get the size using map-get
.class {
font-size: map-get($font-size, h3);
}
// Function and mixin to handle the above
@function font-size($key){
@return map-get($font-size, $key);
}
@mixin font-size($key){
font-size: font-size($key);
}
.class {
font-size: font-size(h3); // use it as function
@include font-size(h3); // use it as include
}
我正在尝试遍历所有 6 个标题并通过来自 6 个 font-size 变量的混合应用 font-size。但是我一直得到一个未定义的变量。它没有识别变量增量。我做错了什么还是这根本不可能?无论如何,在我的脑海中似乎很简单他是 link 到 sassmeister 感谢您的帮助或见解
//变量
$font-h1: 40px;
$font-h2: 28px;
$font-h3: 24px;
$font-h4: 20px;
$font-h5: 18px;
$font-h6: 14px;
//混合
@mixin font-size($size) {
font-size: $size;
}
@for $i from 1 through 6 {
h#{$i} {
// font-size: #{$i};
@include font-size( $font-h#{$i} );
}
}
// 预期结果
h1 {
font-size: 40px
}
etc...
// 实际输出
Undefined variable: "$font-h".
您可以尝试重构您的 var 并使用数组或使用 map fn。
例如:
$font-h: 40px, 28px, 24px, 20px, 18px, 14px;
@mixin font-size($size) {
font-size: $size;
}
@for $i from 1 through length($font-h) {
$font: nth($font-h, $i);
h#{$i} {
@include font-size($font);
}
}
我会选择 map,因为它更灵活——例如:
$font-size:(
h1 : 40px,
h2 : 28px,
h3 : 24px,
h4 : 20px,
h5 : 18px,
h6 : 14px
);
@each $header, $size in $font-size {
#{$header}{ font-size: $size; }
}
// Bonus
// If you need to apply a font-size to another
// element you can get the size using map-get
.class {
font-size: map-get($font-size, h3);
}
// Function and mixin to handle the above
@function font-size($key){
@return map-get($font-size, $key);
}
@mixin font-size($key){
font-size: font-size($key);
}
.class {
font-size: font-size(h3); // use it as function
@include font-size(h3); // use it as include
}