【问题标题】:SCSS/SASS get values from nth nested mapsSCSS/SASS 从第 n 个嵌套映射中获取值
【发布时间】:2018-08-30 08:54:14
【问题描述】:

我在尝试检索嵌套 sass 映射中的值时遇到问题。我有一张看起来像这样的地图:

$breakpoints : (
    xl: (
         page-width: 1170px,
         gutter: 30px,
         base-font-size: 17px
    ),
    l: (
         breakpoint: 1170px,
         page-width: 980px,
         gutter: 20px,
         base-font-size: 17px
    )
);

我正在尝试检索第一个嵌套列表“xl”中的变量。这个想法是通过索引而不是键名来检索嵌套列表,因为这应该能够根据用户的喜好进行修改。

我原以为使用map-get(nth($breakpoints, 1), page-width) 会起作用,但nth($breakpoints, 1) 似乎返回一个包含“xl (page-width: 1170px, gutter: 30px, base-font-size: 17px)”的字符串,而不是实际地图,因此无法与map-get() 函数一起使用。

关于如何做到这一点的任何想法?

【问题讨论】:

    标签: sass nested nested-lists sass-maps


    【解决方案1】:

    您可以创建一个将数字索引转换为字符串键的函数:

    @function index-to-key($index) {
      $keys: map-keys($breakpoints); // A list of all keys in a $breakpoints map
    
      @return nth($keys, $index);
    }
    

    然后调用这个函数:

    width: map-get(map-get($breakpoints, index-to-key(1)), page-width);
    

    内部map-get$breakpoints返回映射xl,外部map-get通过键page-width返回值。


    Sassmeister的完整代码。
    map-keys函数description

    【讨论】:

    • 啊,这似乎做得很好!感谢您的快速回复:)
    猜你喜欢
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 2015-07-13
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    相关资源
    最近更新 更多