sass对象的定义
sass在3.3引入map类型,它与JS的对象非常相似,它有两种定义模式。外面都是用小括号括括起来,每个键值对可以像JS那样与逗号分开。不同之后是,键名与键值之间的冒号不是 必须的
不用对象的情况
@charset "utf-8";//必须设置了这个才能编译有中文的注释 //创建一个核心的颜色
$bravo_gray: #333; // 将创建的核心颜色分配给一个有语义化的变量
$input-disabled-color: $bravo_gray; $input-disabled-background: lighten($input-disabled-color, 75%);
$input-disabled-border: lighten($input-disabled-color, 50%);
$input-disabled-text: lighten($input-disabled-color, 50%); input[disabled] {
background-color: $input-disabled-background;
border-color: $input-disabled-border;
color: $input-disabled-text;
}
//-------------------------
input[disabled] {
background-color: #f2f2f2;
border-color: #b3b3b3;
color: #b3b3b3; }
使用对象的情况
@charset "utf-8";//必须设置了这个才能编译有中文的注释 //创建一个核心的颜色
$bravo_gray: #333; // 将创建的核心颜色分配给一个有语义化的变量
$input-disabled-color: $bravo_gray;
//键名与键值之间没有冒号,此为旧语法
$input: (
disabled-background lighten($input-disabled-color, 75%),
disabled-border lighten($input-disabled-color, 50%),
disabled-text lighten($input-disabled-color, 50%)
); input[disabled] {
background-color: map-get($input, disabled-background);
border-color: map-get($input, disabled-border);
color: map-get($input, disabled-text);
}
//-------------------------
input[disabled] {
background-color: #f2f2f2;
border-color: #b3b3b3;
color: #b3b3b3; }
可以看到层次感更强了
我们再加上冒号试试
@charset "utf-8";//必须设置了这个才能编译有中文的注释 //创建一个核心的颜色
$bravo_gray: #333; // 将创建的核心颜色分配给一个有语义化的变量
$input-disabled-color: $bravo_gray;
//键名与键值之间没有冒号
$input: (//这是新语法
disabled-background: lighten($input-disabled-color, 75%),
disabled-border: lighten($input-disabled-color, 50%),
disabled-text: lighten($input-disabled-color, 50%)
); input[disabled] {
background-color: map-get($input, disabled-background);
border-color: map-get($input, disabled-border);
color: map-get($input, disabled-text);
}
//-------------------------
input[disabled] {
background-color: #f2f2f2;
border-color: #b3b3b3;
color: #b3b3b3; }
我们再认真看一下$input这东西,其实它的键名可以设计得更整齐统一的,那么下方我们就可以直接循环了。
@charset "utf-8";//必须设置了这个才能编译有中文的注释 //创建一个核心的颜色
$bravo_gray: #333; // 将创建的核心颜色分配给一个有语义化的变量
$input-disabled-color: $bravo_gray;
//键名与键值之间没有冒号
$input: (
disabled-background-color: lighten($input-disabled-color, 75%),
disabled-border-color: lighten($input-disabled-color, 50%),
disabled-color: lighten($input-disabled-color, 50%)
);
input[disabled]{
$arr: background-color border-color color;
@each $name in $arr{
#{$name}:map-get($input, disabled-#{$name})
}
}
我们可以将$input设计得更简洁些,去掉杂质,更名为$disabled-input。然后利用@each可以同时遍历出键名与键值的技巧,将它精简到极致。
@charset "utf-8";//必须设置了这个才能编译有中文的注释 //创建一个核心的颜色
$bravo_gray: #333; // 将创建的核心颜色分配给一个有语义化的变量
$input-disabled-color: $bravo_gray;
//键名与键值之间没有冒号 $disabled-input: (
background-color: 75%,
border-color: 50%,
color: 25%
);
input[disabled]{
@each $key, $val in $disabled-input{
#{$key}:lighten($input-disabled-color, $val);
}
}
有了冒号,方便我们定义深层沟的对象。
$var: (
key: (
key: value,
key: value,
key: (
key: value,
key: value
)
)
);
上面的$disabled-input可改成
$input: (
disabled: (
background-color: 75%,
border-color: 50%,
color: 25%
)
);
//这里定义更多有用方法
//https://github.com/lunelson/sass-list-maps/blob/master/_sass-list-maps.scss
sass对象的定义的更多相关文章
- 【翻译十六】java-固定对象的定义方法
A Strategy for Defining Immutable Objects The following rules define a simple strategy for creating ...
- java问题:类的定义,对象的定义?
java问题:类的定义,对象的定义? 类是一组数据和函数的集合,只是抽象的概念,它的作用就是生成对象,它生成对象后,就为这个对象分了一块存储区,类可以生成无限多个对象,每个对象都有自己的存储区,在类里 ...
- C++ 对象的定义
1.考虑下面的方法void Print(const Student& s){ printf("Student[%s:%d]\n", s._Name.c_str(), s._ ...
- Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。
Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. 语法EDIT Object.defineProperty(obj, ...
- Javascript脚本 :Function 对象的定义和使用
javascript Function 对象的定义 创建函数的语法:var myFunction=new Function(arg1,arg2,...agrN,body);agrN 为函数的参数,b ...
- Thymeleaf 之 内置对象、定义变量、URL参数及标签自定义属性
Thymeleaf 之 内置对象.定义变量.URL参数及标签自定义属性 本文章来自[知识林] 如标题所述,这篇文章主要讲述Thymeleaf中的内置对象(list解析.日期格式化.数字格式化等).定义 ...
- JS中类或对象的定义说明
本篇文章主要是对JS中类或对象的定义进行说明介绍.我们知道,JS是面向对象的.谈到面向对象,就不可避免的要涉及类的概念.一般像c#,java这些强类型语言都有固定的定义类的语法.而JS的不同之处在于它 ...
- SQL Server-数据库架构和对象、定义数据完整性(二)
前言 本节我们继续SQL之旅,本节我们如题来讲讲一些基本知识以及需要注意的地方,若有不妥之处,还望指出,简短的内容,深入的理解,Always to review the basics. 数据库架构和对 ...
- c++类的声明和对象的定义---10
原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ 类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量:创建对象的过程也叫类的实例化. ...
随机推荐
- java并发编程:线程安全管理类--原子操作类--AtomicIntegerArray
1.类 AtomicIntegerArray
- CF 920
t1 随便乱搞 t2 随便乱搞 然后wa了三发,QAQ t3 随便乱搞 t4 邻接表+堆 对进出进行一个统计 然后时间到了...
- json.dumps与json.dump的区别 json.loads与json.load的区别(简洁易懂)
json.dumps是将一个Python数据类型列表进行json格式的编码解析, 示例如下: >>> import json #导入python 中的json模块 >>& ...
- C++ readdir、readdir_r函数
readdir, readdir_r - 读一个目录 readdir函数: struct dirent *readdir(DIR *dirp); The data returned by read ...
- HDU3335 Divisibility Dilworth定理+最小路径覆盖
首先需要一些概念: 有向图,最小路径覆盖,最大独立集,Dilworth,偏序集,跳舞链(DLX).... 理解一: 对于DAG图,有:最大独立集=点-二分匹配数,二分匹配数=最小路径覆盖. 而无向图, ...
- Ambiguous reference to member 'dataTask(with:completionHandle:)'错误
在研究IOS的网络请求过程中,因为NSURLConnection已经过时,需要引用到URLSession var url:NSURL=NSURL(string: "http://3g.163 ...
- 解决crontab不加载环境变量问题
公司需要做异构库数据同步,由于之前实际使用过,且字段类型也兼容,满足业务场景,使用了阿里开源数据同步工具:datax,服务器上crontab定时脚本执行. 由于crontab只加载/ect/envir ...
- Java9的新特性
2017.9.21延期了好几次的Java9正式发布,在人工智能的时代,java还能不能持续辉煌是个问题.看看java9的新特性没什么让自己想升级的意愿,因为要么时一些特性用不到,要么时已经有其它方案代 ...
- 【转】Vim自动补全插件----YouCompleteMe安装与配置
原文网址:http://www.cnblogs.com/zhongcq/p/3630047.html 使用Vim编写程序少不了使用自动补全插件,在Linux下有没有类似VS中的Visual Assis ...
- 【monkeyrunner】monkeyrunner 的的方法介绍
1.用法:MonkeyRunner.alert(message,title,okTitle) 执行当前脚本弹出一个警示对话框,用户关闭对话框后脚本才结束. message:会话弹出的内容title:会 ...