iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 28
0
自我挑戰組

sass&css 30天學習日誌系列 第 28

SASS : SASS Maps - get、merge、remove

sass一旦變數變多就很難管理,例如顏色、文字大小、icon等等,所以就需要一個整合變數的工具,也就是sass maps

使用前要注意Sass Maps 是 Sass 3.3 版才有支援

在此用sass maps來管理h1~h5變數
如下圖

https://ithelp.ithome.com.tw/upload/images/20200412/20107321EMpIQRqfvb.png

map製作:

要管理的變數放在此,外層要使用小括號
官方文件:
http://sass-lang.com/documentation/file.SASS_REFERENCE.html#maps

$map: (
  key1: value1, 
  key2: value2, 
  key3: value3
);

Maps function:

接著逐一用簡單範例來解釋下面6項

map-get($map, $key)
map-merge($map1, $map2)
map-remove($map, $keys…)
map-keys($map)
map-values($map)
map-has-key($map, $key)
keywords($args)

最後的keywords($args)是與fuction搭配建立map的方法,須與終端機搭配debug,所以不另外說明
keywords($args) : http://t.cn/EZkis9u
官方文件: http://sass-lang.com/documentation/Sass/Script/Functions.html#inspect-instance_method

1.map-get($map,$key) :取出指定的值

$map可改名稱,套用及效果如下圖

https://ithelp.ithome.com.tw/upload/images/20200412/20107321oQTjkAVCtb.png

總共有5個樣式 ,可搭配@each來使用,如下圖
@each用法 : https://ithelp.ithome.com.tw/articles/10206820
下面變數都可另外命名:

$font — Maps名稱
$name — Maps裡的key名稱
$value — key裡面的值(value)

https://ithelp.ithome.com.tw/upload/images/20200412/20107321dCbUohuwGK.png

2.map-merge($map1, $map2) :合併多個map

2a. 建立文字和顏色的map
2b. 使用map-merge,並給予變數,在此為$merge
如下圖

https://ithelp.ithome.com.tw/upload/images/20200412/20107321aeUOBxwgJO.png

2c. 使用inspect($merge),可顯示裡面包含值的變數
有些文件寫到因為map不能轉純css所以使用inspect產生字符串
http://www.css88.com/doc/sass/#maps

inspect() sass說明:
http://sass-lang.com/documentation/Sass/Script/Functions.html#inspect-instance_method

如下圖

https://ithelp.ithome.com.tw/upload/images/20200412/201073216L4lFfOcu1.png

https://ithelp.ithome.com.tw/upload/images/20200412/2010732136e4WDKvJG.png

3.map-remove($map, $keys…) 移除指定的值

指定map中要移除的值,在此為$font裡面的h1,編譯結果h1就移除了
如下圖

https://ithelp.ithome.com.tw/upload/images/20200412/20107321qIp0WRQXaj.png

參考文件
youtube:

Maps in SASS: SASS Tutorials #6 : https://youtu.be/P-fhiNDphec

文件:

Sass Maps : http://www.w3cplus.com/preprocessor/sass-maps.html
初探 Sass Maps 與使用介紹 : http://muki.tw/tech/sass-maps-introduce/
[翻譯]介紹Sass Maps:用法跟例子 : http://t.cn/EZDgybi


上一篇
SASS : each、while
下一篇
SASS : SASS Maps - keys、values、has-key
系列文
sass&css 30天學習日誌30

尚未有邦友留言

立即登入留言