Я новичок в SASS. Я создал многомерный массив, например:

$content: (
    width: 100%,
    content-header: (
        width: 320px
    ),
    content-main: (
        width: 100%
    ),
    content-footer: (
        width: 320px
    )
);

Как я могу напрямую получить доступ к значению вложенного массива?

Я хочу получить доступ к $content-main[width]. Как я могу получить доступ?

0
Jason Denayer 22 Мар 2019 в 15:07

1 ответ

Лучший ответ

Вы делаете это намного сложнее, чем должно быть. Массивы полезны, если вам нужно перебрать переменные, вам нужно будет создать для этого свою собственную функцию sass, которая использует map-get. Я настоятельно рекомендую просто использовать переменные пространства имен, которые проще и переносить, например. $content-width $content-main-width.

Если вы действительно хотите это сделать, см. https://css-tricks.com / snippets / sass / deep-getset-maps /

/// Map deep get
/// @author Hugo Giraudel
/// @access public
/// @param {Map} $map - Map
/// @param {Arglist} $keys - Key chain
/// @return {*} - Desired value
@function map-deep-get($map, $keys...) {
    @each $key in $keys {
        $map: map-get($map, $key);
    }
    @return $map;
}

map-deep-get($content, "content-header", "width");
0
Dominic 22 Мар 2019 в 12:20