作为一个CSS预处理器,Sass正受到越来越多的青睐,诸如Github、Codepen、CSS-Tricks、SitePoint、w3cplus等网站采用Sass组织、管理CSS文件,Sass正在逐渐成为事实上的CSS预处理器 行业标准 。接下来几篇文章,我们来研读下Sass中的关键功能,今天来看map,大家不妨一坐,精彩内容马上呈现。
map简介
在Sass中,maps代表一种 数据类型 ,可以包含若干键值对的对象类型,使用()包围一个map,里面的键值对用逗号隔开,键和值可以是任何的Sass数据类型,尽管一个值可以用在多个键上,但是通过一个键我们必须只能找到一个值。map不能直接在css中使用,如果你把一个map赋值给一个元素将会报错。下面的代码示例一个经典的map。
$map: ( key1: value1, key2: value2, key3: value3 );
map使用
我们可以使用一系列的函数 操作 map,可以使用循环指令 遍历 map。
map相关的函数有map-keys()、map-values()、map-get()、map-has-key()、map-merge()、map-remove()、keywords()等,函数功能如下表所示。
我们可以使用@each指令遍历map,如下所示。
$map : ( key1: value1, key2: value2, key3: value3 ); /* 遍历map */ @each $key, $value in $map { .element-- #{$key} { background: $value; } }
map案例
map在Sass中应用广泛,有很多场合可以用到map,下面列举一二。
指定多值
css里有很多属性可以指定多个值,例如transition、box-shadow等,这个时候我们可以使用map来定义不同的值,然后可以统一使用。例如
/* 使用map定义不同的值 */ $card_transition_map: ( trans1: 200 ms transform ease-in-out, trans2: 400 ms background ease-in, trans3: 600 ms color linear ); /* map-values统一使用 */ . card { transition: map-values($card_transition_map); }
编译之后 输出
.card { transition : 200ms transform ease-in-out, 400ms background ease-in, 600ms color linear ; }
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did115202