1. 程式人生 > >Sass Maps的函數-map-values($map)、map-merge($map1,$map2)

Sass Maps的函數-map-values($map)、map-merge($map1,$map2)

c89 soc line 12px 新的 註意 merge social sas

map-values($map)

map-values($map) 函數類似於 map-keys($map) 功能,不同的是 map-values($map )獲取的是 $map 的所有 value 值,可以說也將是一個列表。而且,map-values($map) 中如果有相同的 value 也將會全部獲取出來。

如前面的示例,使用:

map-values($social-colors)

將會返回:

#ea4c89,#3b5998,#171515,#db4437,#55acee

值與值之前同樣用逗號分隔。

map-merge($map1,$map2)

map-merge($map1,$map2)

map-merge($map1,$map2) 函數是將 $map1 和 $map2 合並,然後得到一個新的 $map。如果你要快速將新的值插入到 $map 中的話,這種方法是最佳方法。假設我們有兩個 $map:

$color: (
    text: #f36,
    link: #f63,
    border: #ddd,
    backround: #fff
);
$typo:(
    font-size: 12px,
    line-height: 1.6
);

如果希望將這兩個 $map 合並成一個 map,我們只要這樣做:

$newmap: map-merge($color,$typo);

將會生成一個新的 map:

$newmap:(
    text: #f36,
    link: #f63,
    border: #ddd,
    background: #fff,
    font-size: 12px,
    line-height: 1.6
);

這樣你就可以借助 map-get( ) 等函數做其他事情了。

不過有一點需要註意,如果 $map1 和 $map2 中有相同的 $key 名,那麽將 $map2 中的 $key 會取代 $map1 中的:

$color: (
    text: #f36,
    link: #f63,
    border: #ddd,
    backround: #fff
);
$typo:(
    font-size: 12px,
    line-height: 1.6,
    border: #ccc,
    background: #000
);

執行:

$newmap: map-merge($color,$typo);

得到的新 map:

header {
  @each $key, $value in $newmap {
    #{$key}:#{$value}
  }
}
$newmap:(
    text: #f36,
    link: #f63,
    font-size: 12px,
    line-height: 1.6,
    border: #ccc,
    background: #000
);

Sass Maps的函數-map-values($map)、map-merge($map1,$map2)