我在尝试检索嵌套sass映射中的值时遇到问题。我有一张如下所示的地图:
android:theme="@style/AppTheme.NoTitleBar"
我正在尝试检索第一个嵌套列表中的变量" xl"。我们的想法是通过索引检索嵌套列表,而不是通过键名检索嵌套列表,因为这应该能够修改为用户的喜好。
我原以为使用$breakpoints : (
xl: (
page-width: 1170px,
gutter: 30px,
base-font-size: 17px
),
l: (
breakpoint: 1170px,
page-width: 980px,
gutter: 20px,
base-font-size: 17px
)
);
会有效但map-get(nth($breakpoints, 1), page-width)
似乎会返回一个包含" xl的字符串(页面宽度:1170px,gutter:30px,base-font-size :17px)"而不是实际的地图,因此nth($breakpoints, 1)
功能无法使用。
关于如何做到这一点的任何想法?
答案 0 :(得分:4)
您可以创建一个将数字索引转换为字符串键的函数:
@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
从xl
返回地图$breakpoints
,而外map-get
返回按键page-width
的值。
Sassmeister上的完整代码。
map-keys
函数description。