map.get()
不起作用。map-get()
确实有效。我设置了一个颜色值映射并创建了一个简单的函数来检索它们。
在进行检索时,我遵循了Sass 文档,其中指出您可以使用该map.get()
函数检索映射值。使用这种或任何其他map.function
在结果Error: There is no module with the namespace "map".
。
检查地图模块,我注意到一个替代语法,map-get()
,它确实有效。
是什么赋予了?我是否缺少某些东西,例如导入地图模块,以便我可以以该形式使用它?
在下面查看我的代码:
// Using npm dart `sass 1.26.11`.
$colors: ('primary': black, 'secondary': white);
// Doesn't work
@function color($color) {
@return map.get($colors, $color);
}
// Does work
@function color($color) {
@return map-get($colors, $color);
}
Run Code Online (Sandbox Code Playgroud)
map.get()
语法正常工作?map.set
sass文档给出的示例不起作用,为什么呢?
@use "sass:map";\n\n$font-weights: (\n \'regular\': 400,\n \'medium\': 500,\n \'bold\': 700\n);\n\nmap.set($font-weights, \'extra-bold\', 900);\n// ("regular": 400, "medium": 500, "bold": 700, "extra-bold": 900)\nmap.set($font-weights, \'bold\', 900);\n// ("regular": 400, "medium": 500, "bold": 900)\n
Run Code Online (Sandbox Code Playgroud)\n我的sass
版本是1.32.5
.
\n整个错误消息:
@use "sass:map";\n\n$font-weights: (\n \'regular\': 400,\n \'medium\': 500,\n \'bold\': 700\n);\n\nmap.set($font-weights, \'extra-bold\', 900);\n// ("regular": 400, "medium": 500, "bold": 700, "extra-bold": 900)\nmap.set($font-weights, \'bold\', 900);\n// ("regular": 400, "medium": 500, "bold": 900)\n
Run Code Online (Sandbox Code Playgroud)\n我希望设置地图时不会抛出错误。
\n我的目标是生成一个SASS map
来存储存储在以下地图中的颜色变体:
$colors : (
jet : #333333,
wintergreen-dream : #588C73,
eton-blue : #8FC0A9,
sunglow : #FFC33C,
light-kaki : #F2E394,
bege : #FAF3DD
);
Run Code Online (Sandbox Code Playgroud)
到目前为止,我使用a @function
来检索这些变体:
@function light ($color, $val) { @return lighten($color, $val); }
@function dark ($color, $val) { @return darken($color, $val); }
@function transparent ($color, $val) { @return transparent($color, $val); }
Run Code Online (Sandbox Code Playgroud)
我期望能够生成的地图看起来与以下相似:
$colors-map : (
eton-blue : (
base : $eton-blue,
light : lighten($eton-blue, 15%),
dark : darken($eton-blue, 15%),
trans : transparent($eton-blue, .5)
),
jet : …
Run Code Online (Sandbox Code Playgroud) 我在尝试检索嵌套 sass 映射中的值时遇到问题。我有一张看起来像这样的地图:
$breakpoints : (
xl: (
page-width: 1170px,
gutter: 30px,
base-font-size: 17px
),
l: (
breakpoint: 1170px,
page-width: 980px,
gutter: 20px,
base-font-size: 17px
)
);
Run Code Online (Sandbox Code Playgroud)
我试图在第一个嵌套列表“xl”中检索变量。这个想法是通过索引而不是键名来检索嵌套列表,因为这应该能够根据用户的喜好进行修改。
我原以为使用map-get(nth($breakpoints, 1), page-width)
会起作用,但nth($breakpoints, 1)
似乎返回一个包含“xl(页面宽度:1170px,装订线:30px,base-font-size:17px)”而不是实际地图的字符串,因此无法使用该map-get()
功能.
关于如何做到这一点的任何想法?
sass ×5
sass-maps ×5
css ×2
dart-sass ×1
dictionary ×1
function ×1
loops ×1
nested ×1
nested-lists ×1
sass-loader ×1
syntax ×1