sass学习(2)——关于变量
定义一个sass变量
可以说,变量是一个编程语言的基础。所以对于sass来说,变量肯定是浓墨重彩的其中一笔,当然函数也是。那我们如何声明定义一个sass的变量呢?
- 变量的符号
$ - 变量名称
- 变量的值
那我们看一下如何使用变量
$color: white;
body{
color: $color;
}
div{
color: $color;
}
就是这么简单,当然这个例子很简单,所以暂时看不出它所带来的非凡的效果。
全局变量与局部变量
global
sass中的变量也是分为全局与局部的,在代码块内声明的变量只会在代码块内生效,除非为其添加了!global。前面关于全局和局部变量,学过一点js的都应该懂,这里就不再赘述。我们直接看看如何在局部变量里声明一个全局的变量。
$color: white;
body{
$partial-color: black !global; //若没有!global则会报错,无法编译
$color: red;
}
div{
color: partial-color;
color: $color; //编译后仍然是white,说明并未收到上一个代码块的影响
}
default
当然还有一个类似的命令是!default,直接根据语意即可知,它是说明变量值为默认值。任何的值都可以覆盖默认值,即使默认值出现在后面。
$color: red;
$color: blue !default;
body{
color: $color //编译后为red
}
这个default对于组件化的开发是有很大的帮助的,大家也可以思考思考。非default值出现在后面,则是普通的覆盖。若是出现在前面,则是sass自动编译,使用非default值来覆盖default。这个操作会让组件化开发的时候,更易于控制。
特殊变量
一般变量的值是属性值,我们可以拿来直接用。但是如果变量的值是属性名的话,我们就需要使用一个特殊的表达式#{$variab},可以直接看个例子。
$white-color: white;
$black-color: black;
body{
.div-#{$white-color}: $white-color;
.div-#{$black-color}: $black-color;
}
------编译后------
body {
.div-white: white;
.div-black: black;
}
这个功能可是十分有用啊,这样我们就可以很舒服的通过变量来控制属性名了。
&操作符
个人感觉&操作符在javascript里,和this指针差不多。这个怎么说呢,就是&变量会自动转化成父层的元素,这样在某些地方可以大有好处,尤其是伪元素。直接来看看例子吧。
$base-color: black;
$hover-color: red;
.btn{
color: $base-color;
&:hover{
color: $hover-color;
}
}
------编译后------
.btn {
color: black;
}
.btn:hover {
color: red;
}
巧妙利用&操作符,会让我们使用起来更加灵活,自如。
多值变量
这种变量可也真是让人涨姿势,分为list变量和map变量。对应javascript来说,也就是数组和对象。下面一一来简单介绍一下。
list
list中的值,可以用三种形式来区分,空格、逗号还有小括号。其中若灵活混用,则可以做成类似二维数组的变量,如[['white', 'black'] ['red', 'blue']]。那使用什么办法取值呢,sass提供了一个nth($variable, index)的方法。一起来看看吧。
$color: white black red blue;
a{
color: nth($color, 2);
&:hover{
color: nth($color, 4);
}
}
------编译后------
a {
color: black;
}
a:hover {
color: blue;
}
是不是非常的酷!这样可以让我们的变量更加灵活。当然list数据的操作也有非常的自带的函数,想要更多了解的也可以自行查阅。
map
其实map也是大同小异,只是map是根据key和value做更多更自由的事情。这里我就引用一下别人的例子,我觉得这个例子是十分有特色的,也可以省下非常多的时间。
$headings: (h1: 2em, h2: 1.5em, h3: 1.2em);
@each $header, $size in $headings {
#{$header} {
font-size: $size;
}
}
------编译后------
h1 {
font-size: 2em;
}
h2 {
font-size: 1.5em;
}
h3 {
font-size: 1.2em;
}
这里也看到了一个内置函数,@each, $header和$size,则分别代表着循环过程中的key和value。相信大家也是能看得出来的。我们通过一个map,可以如此简洁的定义好三个相似的样式,多让人舒心。
关于sass常用的变量,也差不多讲完了。语法的学习,必须配合实际操作。如果大家对sass感兴趣,可以毫不犹豫加入其中,一定会带你给无限惊喜。
sass学习(2)——关于变量的更多相关文章
- 菜鸟的 Sass 学习笔记
介绍 sass 是什么?? 在sass的官网,它是这么形容给自己的 Sass is the most mature, stable, and powerful professional grade C ...
- Sass学习第一天
Sass学习 网站学习地址: Sass中文网:https://www.sass.hk/docs/#t7-3 Airen的博客:https://www.w3cplus.com/preprocessor/ ...
- Swift入门学习之一常量,变量和声明
版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/6059421.html Swift入门学习之一常量,变量和 ...
- Sass学习笔记(补充)
阅读目录 1. Sass和SCSS的区别 2. @while循环 3. @at-root 4. @content 5. 凸显注释 6. CSS输出样式 7. 重置浏览器样式 8. Sass调试和@de ...
- Python入门学习:1.变量和简单的数据类型
python入门学习:1.变量和简单的数据类型 关键点:变量.字符串.数字 1.1 变量的命名和使用1.2 字符串1.3 数字1.4 注释 1.1 变量的命名和使用 变量,顾名思义是一个可变的量, ...
- Shell学习之环境变量配置文件(三)
Shell学习之环境变量配置文件 目录 环境变量配置文件简介 环境变量配置文件作用 其他配置文件和登录信息 环境变量配置文件简介 环境变量配置文件简介 环境变量配置文件中主要是定义对系统操作环境生效的 ...
- Shell学习之Bash变量详解(二)
Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...
- NodeJS学习:环境变量
简介 环境变量(environment variables) 不属于 NodeJS 范畴,它是操作系统用于设定执行环境的参数.会在程序运行时传递给应用程序. NodeJS 获取环境变量,是通过 glo ...
- ES6学习笔记之变量的解构赋值
变量的解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构. 数组的解构赋值 以前,为变量赋值,只能直接指定值: 1 2 3 var a = 1; var b = 2; ...
随机推荐
- (四)CSS选择器和派生选择器
CSS派生选择器允许你根据文档的上下文关系来确定某个标签的样式.在学习派生之前,先来了解基本的CSS选择器.前面的文章中提到过下图,选择器的位置如下所示: CSS选择器 分为几种基本选择器:元素选择器 ...
- LTDFZ
开关稳压器
- 演练:Office 编程(C# 和 Visual Basic)
https://msdn.microsoft.com/zh-cn/library/ee342218(v=vs.110).aspx PIA的全称是 primary interop assembly 主 ...
- 爬虫技术(五)-- 模拟简单浏览器(附c#代码)
由于最近在做毕业设计,需要用到一些简单的浏览器功能,于是学习了一下,顺便写篇博客~~大牛请勿喷,菜鸟练练手~ 实现界面如下:(简单朴素版@_@||) button_go实现如下: private vo ...
- git版本库底层命令
当我们在使用git的时候,有时候需要知道当前文件夹相对于工作目录根目录的相对路径等等,那么我们可以使用 git rev-parse 添加一个参数就可以实现,如: 显示当前仓库版本库 .git 目录所在 ...
- 【笨嘴拙舌WINDOWS】伟大的变革
"改革"."革命"."变革" 这几个词语毫无疑问是每一个时代必须被呼吁的词语,当一个国家没有人求变时,那是一个时代的悲剧.无论是文景之治,贞 ...
- UVa 10652 (简单凸包) Board Wrapping
题意: 有n块互不重叠的矩形木板,用尽量小的凸多边形将它们包起来,并输出并输出木板总面积占凸多边形面积的百分比. 分析: 几乎是凸包和多边形面积的裸题. 注意:最后输出的百分号前面有个空格,第一次交P ...
- Codeforces Round #271 (Div. 2)
A. Keyboard 题意:一个人打字,可能会左偏一位,可能会右偏一位,给出一串字符,求它本来的串 和紫书的破损的键盘一样 #include<iostream> #include< ...
- php.ini配置中文详解
;;;;;;;;;;; ; 警告 ; ;;;;;;;;;;; ; 此配置文件是对于新安装的PHP的默认设置. ; 默认情况下,PHP使用此配置文件安装 ; 此配置针对开发目的,并且*不是*针对生产环境 ...
- Android 仿百度网页音乐播放器圆形图片转圈播放效果
百度网页音乐播放器的效果 如下 : http://www.baidu.com/baidu?word=%E4%B8%80%E7%9B%B4%E5%BE%88%E5%AE%89%E9%9D%99& ...