Sass 的 map 常常被称为数据地图,也有人称其为数组,因为他总是以 key:value 成对的出现,但其更像是一个 JSON 数据
~~~
$social-colors: (
dribble: #ea4c89,
facebook: #3b5998,
github: #171515,
google: #db4437,
twitter: #55acee
);
~~~
~~~
//使用@each去遍历
$social-colors: (
dribble: #ea4c89,
facebook: #3b5998,
github: #171515,
google: #db4437,
twitter: #55acee
);
@each $k,$v in $social-colors {
.btn-#{$k}{
color:$v;
}
}
~~~
~~~
map-get
//获取map类型的值
~~~
~~~
$colors:(
bg:#eee,
text-color:#333,
primary:#ff2d51
);
div{
color:map-get($map: $colors, $key: text-color)
}
~~~
~~~
//自定义函数
@function color($key) {
@if map-has-key($colors, $key) {
@return map-get($colors, $key);
}
@warn "Unknown `#{$key}` in $colors.";
@return null;
}
~~~
~~~
div:{
background:color(bg)
}
~~~
- map-get($map,$key):根据给定的 key 值,返回 map 中相关的值。
- map-merge($map1,$map2):将两个 map 合并成一个新的 map。
- map-remove($map,$key):从 map 中删除一个 key,返回一个新 map。
- map-keys($map):返回 map 中所有的 key。
- map-values($map):返回 map 中所有的 value。
- map-has-key($map,$key):根据给定的 key 值判断 map 是否有对应的 value 值,如果有返回 true,否则返回 false。
- keywords($args):返回一个函数的参数,这个参数可以动态的设置 key 和 value。
## 1.map-has-key
>map-has-key($map,$key) 函数将返回一个布尔值。当 $map 中有这个 $key,则函数返回 true,否则返回 false。
~~~
$colors: (bg: #ea4c89, text-color: #333, primary: #ff2d51);
~~~
~~~
@if map-has-key($map: $colors, $key: bg){
div{
color:map-get($map: $colors, $key:text-color )
}
}
~~~
## 2.map-keys($map)
>函数将会返回 $map 中的所有 key。这些值赋予给一个变量,那他就是一个列表
~~~
$social-colors: (
dribble: #ea4c89,
facebook: #3b5998,
github: #171515,
google: #db4437,
twitter: #55acee
);
$list:map-keys($social-colors);
@each $var in $list {
.#{$var}{
width:100px;
}
}
~~~
## 3.map-merge
~~~
$bg:(
bg:red
);
$color:(
color:blue
);
$bc:map-merge($bg,$color);
div{
background:map-get($map: $bc, $key:bg );
color:map-get($map: $bc, $key:color )
}
~~~
- A.css工程化
- 1.课程介绍
- 2.css基础
- 2.1非布局样式
- 2.2使用自定义的字体
- 2.3行高
- 2.4背景
- 2.5边框
- 2.6overflow
- 2.7文字折行
- 2.8文字的装饰属性
- 2.9cssHack
- 2.10美化checkbox
- 2.11css面试
- 3.css进阶
- 3.1css布局
- 3.1.1table布局
- 3.1.2flexbox
- 3.1.3float
- 3.1.4inline-block布局
- 3.1.5响应式布局
- 3.1.6@media
- 3.1.7面试题
- 3.2css效果
- 3.2.1transform3d
- 3.3动画
- 4.预处理器
- 4.1less
- 4.2sass
- 第一节 变量和嵌套
- 第二节 @mixin,%placeholder
- 第三节 插值#{}
- 第四节 sass的控制命令
- 4.3css预处理器框架
- 4.4面试
- 5.bootstrap
- 示例
- bootstrap3模板
- 第1章 起步
- 1-1带悬浮高亮的表格
- 1-2图像
- 1-3图标
- 第2章 表单
- 2.1垂直表单
- 2.2水平表单
- 2.3内联表单
- 2.4表单控件input
- 2.4.1select下拉框
- 2.4.2textarea
- 2.4.3checkbox/radio
- 2.4.4check/radio水平排列
- 2.4.5按钮
- 2.4.6表单控件大小
- 2.4.7表单控件状态(验证)
- 2.4.8表单提示信息
- 2.4.9有图标的表单
- 第3章 响应式布局
- 3-1实现原理
- 3-2列偏移排序
- 第8章 JS组件
- 1.modal模态框
- 第4章 菜单,按钮,导航
- 5-1下来菜单
- 5-2下拉(分割线)
- 5-3下拉(菜单标题)
- 5-4dropup上弹菜单
- 5-5按钮(按钮组,工具栏)
- 5-6按钮(嵌套按钮组-下拉)
- 5-7按钮(垂直分组)
- 第5章 导航
- 6-1tabs
- 6-2垂直堆叠导航
- 6-3自适应导航
- 6-4下拉导航
- 6-5breadcrumb导航
- 第6章 导航条
- 6-1为导航加标题
- 6-2带表单的导航
- 6-3固定导航
- 6-4响应式导航
- 6.三大框架中的css
- 7.css3
- 第一章 3d效果
- B.进阶教程
- 1.flex教程
- 2.css-@import
- 3.grid布局
- 4.bootstrap栅格实现原理
- 5.选择器 倍数写法
- C.sass进阶教程
- 第一节 Sass的函数功能-字符串与数字函数
- 第二节 列表函数
- 第三节 Introspection函数
- 第四节 map
- 第五节 颜色函数