有这样的SCSS
代码:
$font-weights: (
"font-weight-thin": 100,
"font-weight-light": 300,
"font-weight-regular": 400,
"font-weight-medium": 500,
"font-weight-bold": 700,
"font-weight-black": 900,
);
@function font-weight($font-weight-style){
@return map-get($font-weights, $font-weight-style);
}
然后我们可以以以下函数调用的形式使用它:
.header_top_navigation{
font-weight: font-weight(font-weight-regular);
}
问题:
与使用普通SCSS
变量相比,这种方法有什么优势(以及它能解决哪些任务(
还是它只是一个等价但更杂乱的替代方案?
这可能只是额外的代码,它对错误敏感:
- 您需要为每个映射编写一个特定的函数
- 当您更改地图名称时,还需要更改您的功能
创建函数的一个有效原因可能是您不喜欢map get的语法,并希望创建一个简写,使其可读性更强。你可以这样做:
function mg($map, $key) {
@return map-get($map, $key);
}
你可以像这样在每张地图上使用它:
.header_top_navigation{
font-weight: mg($font-weights, "font-weight-regular");
}