如何在map-get中使用键名而不是值?

HGB*_*HGB 4 sass scss-lint

我正在尝试创建一个函数,只是让我能够在CSS中输出一个简单的二维地图的键名键值:

$people: (
    "Hellen": (
        age: "34",
        sex: "female"
    ),
    "Patrick": (
        age: "23",
        sex: "male"
    ),
    "George": (
        age: "10",
        sex: "male"
    ),
    "Vicky": (
        age: "19",
        sex: "female"
    )
);
Run Code Online (Sandbox Code Playgroud)

我正在创建一个简单的函数来检索此信息:

@each $person-name, $person-details in $people {
    $age: map-get($person-details, 'age');
    $sex: map-get($person-details, 'sex');

    .#{$person-name} {

        height: 100 px;
        width: 100 px;
        background: #FF3C00;
        margin: 0 auto;

        &:before {
            content:$person-name " " + $age " ";
        }

        &:after {
            content: $sex;
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class="Hellen"></div>
Run Code Online (Sandbox Code Playgroud)

但我找不到任何将密钥和值作为单独对象的信息.我只能读取值,而不是以下键:

$age: map-get($person-details, 'age');
Run Code Online (Sandbox Code Playgroud)

结果:

Hellen 34 female
Run Code Online (Sandbox Code Playgroud)

而不是:海伦年龄:34性别:女性

如何获得带或不带值的关键标签?

twx*_*xia 8

用于map-keys()获取列表中的所有键.

样品:

@each $person-name, $person-details in $people {
    $age: map-get($person-details, 'age');
    $sex: map-get($person-details, 'sex');
    $keys: map-keys($person-details);

    .#{$person-name} {

        height: 100 px;
        width: 100 px;
        background: #FF3C00;
        margin: 0 auto;

        &:before {
            content:"#{$person-name}  #{nth($keys, 1)} : #{$age} ";
        }

        &:after {
            content: "#{nth($keys, 2)}: #{$sex}";
        }

    }

}
Run Code Online (Sandbox Code Playgroud)