SASS @each 语句中的多个变量

Multiple variables in SASS @each statement

我正在尝试将几个参数传递到 SASS 语句中以最终创建行的变体,但我并没有完全正确地获取映射键。

我的目标是获取 RowName、RowBGColor 和 RowText Color,同时将一些设置传递到我在 SASS 的其他地方使用的附加混入中。

@mixin sectionH1 ($color) {
font-size: 60px;
text-transform: uppercase;
color: $color;
margin: 0 0 0 0;
&:after {
    content: "";
    display: block;
    margin: 0 auto;
    width: 30%;
    border-bottom: 3px dotted;
    }
}
$primary-names:(#ccc, #000, #fff, #ccc);
//$primary-names:(Red, Black, Grey, White);
$primary-bgColors: (#8f1324, #000, #999, #fff);
$primary-txtColors: ( #fff, #fff, #000, #000);

//@for $i from 1 through length($primary-bgColors){
@each $name, $bgColor, $txtColor in $primary-names, $primary-bgColors, 
$primary-txtColors {
.titleRow#{$name} {
    text-align: center;
    height: auto;
    overflow: hidden;
    //background-color: nth($color in $primary-bgColors, $i);
    background-color: $bgColor;
    .content {
        bottom: 0;
        width: 100%;
        color: $txtColor;
        padding: 0 30px 25px;
        h1 {
            @include sectionH1 ($txtColor);
            font-size: 60px;
        }
        .subtitle {
            line-height: 30px;
            padding: 15px 0 0 0;
        }
    }
    .fa {
        font-size: 30px;
        color: #fff;
        left: 50%;
        margin: 18px 0 0 0;
    }
  }
}
//}

解决了,我的直觉告诉我有更有效的方法,但这里是。

$rowTypes: (red #8f1324 #fff) (black #8f1324 #fff) (grey #ccc #000) (white #fff #000);

 @each $row in $rowTypes {
   $names: nth($row, 1);
   $bgColor: nth($row, 2);
   $txtColor: nth($row, 3);

.titleRow#{$names} {
    text-align: center;
    height: auto;
    overflow: hidden;
    background-color: $bgColor;
    .content {
        bottom: 0;
        width: 100%;
        color: $txtColor;
        padding: 0 30px 25px;
        h1 {
            @include sectionH1 ($txtColor);
            font-size: 60px;
        }
        .subtitle {
            line-height: 30px;
            padding: 15px 0 0 0;
        }
    }
    .fa {
        font-size: 30px;
        color: #fff;
        left: 50%;
        margin: 18px 0 0 0;
    }
  }
}