我是Sass的新手,我正在尝试获取这样的CSS;
.heading-lg {
font-size: 11.2rem;}
.heading-md {
font-size: 11.2rem;}
.heading-sm {
font-size: 11.2rem;}
这是我的SCSS代码。但是所有heading-xx类都获得11.2rem。谁能给我指路?非常感谢。
$font-size: 1.6rem;
$heading-size: .8rem;
$heading: lg md sm;
$heading-lg: lg;
$heading-md: md;
$heading-sm: sm;
@each $size in $heading {
.heading-#{$size} {
@if $heading-lg==lg {
font-size: $font-size + $heading-size * (12);
}
@else if $heading-md==md {
font-size: $font-size + $heading-size * (10);
}
@else {
font-size: $font-size + $heading-size * (8);
}
}
}
答案 0 :(得分:0)
您应该使用$size
变量而不是$heading-lg
。如上面的代码所示,$heading-lg
中的@each
始终等于lg,因此会导致问题。
@each $size in $heading {
.heading-#{$size} {
@if $size==lg {
font-size: $font-size + $heading-size * (12);
}
@else if $size==md {
font-size: $font-size + $heading-size * (10);
}
@else {
font-size: $font-size + $heading-size * (8);
}
}
}
答案 1 :(得分:0)
另一个好的解决方案是使用映射:也许它更具可读性(因为您立即关联了键值),而不必在@each循环内使用@if语句:
$font-size: 1.6rem;
$heading-size: .8rem;
$heading-list: (
lg:12,
md:10,
sm:8
);
@each $key, $value in $heading-list {
.heading-#{$key} {
font-size: $font-size + $heading-size * ($value);
}
}