Sass 如何引用地图对象内部的特性
我有一个颜色地图,并希望根据地图中先前定义的颜色在地图中定义后续颜色Sass 如何引用地图对象内部的特性,sass,maps,Sass,Maps,我有一个颜色地图,并希望根据地图中先前定义的颜色在地图中定义后续颜色 $colors: ( primary: #184770, secondary: #0969A2, white: #fff, black: #000, green: #24b206, blue: #428bca, purple: #813c8e, grey: (lighten( black, 25%)), grey-light: (light
$colors: (
primary: #184770,
secondary: #0969A2,
white: #fff,
black: #000,
green: #24b206,
blue: #428bca,
purple: #813c8e,
grey: (lighten( black, 25%)),
grey-light: (lighten( black, 35%)),
grey-dark: (lighten( black, 15%))
);
我想基于map get($colors,black)
指定grey
、grey light
和grey dark
上面的示例之所以有效,是因为它引用的是固有颜色“黑色”,而不是map get($colors,black)
可以引用同一地图对象内的属性吗 否,不能在同一地图对象内引用地图的属性。在到达分号之前,地图不会真正定义,因此在此点之前,地图自身的属性无法引用。这里有一个类似的例子 如果要基于最初定义的值添加后续值,则一个路由具有
map get
和map merge
功能的组合:
$base-colors: (
black: #000
);
$extended-colors: (
grey: lighten(map-get($base-colors, black), 25%),
grey-light: lighten(map-get($base-colors, black), 35%),
grey-dark: lighten(map-get($base-colors, black), 15%)
);
$colors: map-merge($base-colors, $extended-colors);
注:地图合并
执行浅合并,最适合平面一维地图;如果要合并更深层次的多维贴图,可能需要定义并使用而不是贴图合并