github地址:https://github.com/lily1010/sass/tree/master/course02

用到的sass语法是:

sass --watch test.scss:test.css --style expanded

如下图:

1 类名嵌套

test.scss内容是:

.test1 {
font-size: .15rem;
p{
color: #333;
.test11 {
width: 3px;
}
}
}

编译成test.css内容是:

.test1 {
font-size: .15rem;
}
.test1 p {
color: #333;
}
.test1 p .test11 {
width: 3px;
}

2 属性嵌套

test.scss内容是:

.test2 {
margin: {
left: 10px;
right: 20px;
}
}
.test21 {
margin: 0 0 0 0{ /*命名空间也可以有自己的属性*/
left: 10px;
right: 20px;
}
}

编译成test.css内容是:

.test2 {
margin-left: 10px;
margin-right: 20px;
} .test21 {
margin: 0 0 0 0;
margin-left: 10px;
margin-right: 20px;
}

3 引用父选择器和精确定位父选择器和反向成为父选择器

test.scss内容是:

.a {
font-size: .15rem;
&:hover { //引用父选择器
color: red;
}
.ll { //精确定位父选择器
color: black;
&:hover {
height: 20px;
}
}
.test3 & { //反向成为父选择器
width: 10px;
}
}

编译成test.css内容是:

.a {
font-size: .15rem;
}
.a:hover {
color: red;
}
.a .ll {
color: black;
}
.a .ll:hover {
height: 20px;
}
.test3 .a {
width: 10px;
}

4 全局变量

test.scss内容是:

/*方法一*/
$color: red;
.test4 {
color: $color;
}
/*方法二*/
.test41 {
$red: red !global;
color: $red;
}
.test42 {
color: $red;
}

编译成test.css内容是:

/*方法一*/
.test4 {
color: red;
} /*方法二*/
.test41 {
color: red;
} .test42 {
color: red;
}

5 带引号的字符串将被编译为不带引号的字符串

test.scss内容是:

@mixin test5($left) {   //此处$不可去掉
border-#{$left}:1px #000 solid;
left: 20px;
top: 10px;
}
.lili2 {
@include test5("left");
}

编译成test.css内容是:

.lili2 {
border-left: 1px #000 solid;
left: 20px;
top: 10px;
}

6 精讲除法

test.scss内容是:

/*需要注意:Sass 数学函数在算术运算期间会保留单位
*可以将/解析为除法三种情况
*(1)如果该值,或值的任何部分,存储在一个变量中或通过函数返回。
* (2)如果该值是由括号括起来的,除非这些括号是在一个列表(list)外部,并且值是括号内部。
* (3)如果该值被用作另一个算术表达式的一部分。
*/
p {
font-size: 10px/2px; // 原生的CSS,不作为除法
$width: 100px;
width: $width/2;
height: (100px/2);
margin-left: 5px + 8px/2px;
}

编译成test.css内容是:

p {
font-size: 10px/2px;
width: 50px;
height: 50px;
margin-left: 9px;
}

7 颜色运算

test.scss内容是:

.test7 {
color: #302010 + #333333;
}
.test71 {
color: #010101 * 2;
}
.test72 {
color: rgba(0,0,0,0.3) + rgba(1,1,1,0.3); //必须具有相同的alpha值,才能进行颜色运算,但是alpha不变
}
/*如果想让alpha值变化,则需要计算函数*/
.test73 {
color: opacify(rgba(0,0,0,0.3),0.3);
}

编译成test.css内容是:

.test7 {
color: #635343;
} .test71 {
color: #020202;
} .test72 {
color: rgba(1, 1, 1, 0.3);
} /*如果想让alpha值变化,则需要计算函数*/
.test73 {
color: rgba(0, 0, 0, 0.6);
}

8 字符串运算

test.scss内容是:

.test8 {
width: 2px + 3px;
}
.test81::after { //带引号字符串和不带引号字符串,谁在前面就以谁为主
font-family: "arial" + black;
content: lala + "lili";
}
$value: 20; //在字符串里面插入动态值
.test82::before {
content: "wo ke yi #{$value} lili";
}

编译成test.css内容是:

.test8 {
width: 5px;
} .test81::after {
font-family: "arialblack";
content: lalalili;
} .test82::before {
content: "wo ke yi 20 lili";
}

9 圆括号提升优先级

test.scss内容是:

.test9 {
width: 1px + (2px * 3);
}

编译成test.css内容是:

.test9 {
width: 7px;
}

10 默认变量 !default

test.scss内容是:

/*如果分配给变量的值后面添加了!default标志 ,这意味着该变量如果已经赋值,那么它不会被重新赋值,但是,如果它尚未赋值,那么它会被赋予新的给定值。*/
$color: red;
$color: pink !default;
.test10 {
color: $color;
}

编译成test.css内容是:

.test10 {
color: red;
}

sass中级语法的更多相关文章

  1. sass高级语法的补充

    1. 继承 2.混入 3.函数 我这篇博客需要点基础才能看懂, 但我这篇博客是对上一篇的 sass高级语法 的补充 从这方面来看也无所谓了

  2. sass 基本语法

    sass语法 文件后缀名 sass有两种后缀名文件:一种后缀名为sass,不使用大括号和分号:另一种就是我们这里使用的scss文件,这种和我们平时写的css文件格式差不多,使用大括号和分号. 而本教程 ...

  3. 尚学python课程---14、python中级语法

    尚学python课程---14.python中级语法 一.总结 一句话总结: var[1:5] 访问模式:比如字符串,比如列表元祖,字典等 del 删除模式:比如列表.元祖.字典 1.Python的N ...

  4. sass初级语法

    github地址:https://github.com/lily1010/sass/tree/master/course01 用到的sass语法是: sass --watch test.scss:te ...

  5. sass高级语法

    github地址:https://github.com/lily1010/sass/tree/master/course03 用到的sass语法是: sass --watch test.scss:te ...

  6. Sass基础语法

    Sass是CSS3语言的扩展,在CSS的基础之上添加了新特性和语法,能省事地写出更好的样式表.Sass引擎是基于Ruby的. 导入Sass文件: @import "colors" ...

  7. sass笔记-2|Sass基础语法之让样式表更具条理性和可读性

    这一篇主要详述保持sass条理性和可读性的3个最基本方法--嵌套.导入和注释. 零. 变量 变量本身的作用是为了保持属性值的可维护性,把所有需要维护的属性值放在同一个地方,快速更改,处处生效,可谓售后 ...

  8. Sass简介,安装环境,Sass的语法格式及编译调试

    什么是 CSS 预处理器? 定义:CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进 ...

  9. sass基本语法

    sass是一种基于ruby语言开发的CSS预处理器.它可以使用变量,嵌套,混入,继承,运算,函数等编程语言具有的特性进行CSS的开发,使得CSS的开发变得简单粗暴清晰可维护. sass有两种后缀文件格 ...

随机推荐

  1. 去空格 whitespaceAndNewlineCharacterSet和过滤字符串

    一.过滤字符串 可以使用stringByTrimmingCharactersInSet函数过滤字符串中的特殊符号 首先自己定义一个NSCharacterSet, 包含需要去除的特殊符号 NSChara ...

  2. [问题记录.VisualStudio]VS2013无法新增和打开项目

    [问题描述] 1) 打开项目失败,报“项目文件只读”或“空引用”错误. 2) 无法新建项目,没有任何可用模板. 3) TFS都正常 [问题产生] 机器环境: 1) 装的Win10双系统,其中一个系统是 ...

  3. 自定义指令directive

    1.自定义指令 在angular中,module下面的directive方法用于创建自定义指令,用法: m1.directive('myTab',function(){ return { restri ...

  4. winform 异步读取数据 小实例

    这几天对突然对委托事件,异步编程产生了兴趣,大量阅读前辈们的代码后自己总结了一下. 主要是实现 DataTable的导入导出,当然可以模拟从数据库读取大量数据,这可能需要一定的时间,然后 再把数据导入 ...

  5. 1.1使用内置的Camara应用程序捕捉图像

    一: Camara应用程序包含的意图过滤器 <intent-filter> <action android:name="android.media.action.IMAGE ...

  6. 对OnOutOfMemoryError的运维处理

    以部署在linux系统/opt/Server目录下的Server.jar为例 1.在run.sh启动脚本中添加jvm参数: -XX:OnOutOfMemoryError=/opt/Server/res ...

  7. 特殊的ASCII码对应的字符

    Special Characters " " " quotation mark u+0022 ISOnum p:before { content:"\0022& ...

  8. photoshopcc基础教程

    web项目中,除了最基础的用java存取数据外,还有重要的h5+css排版以及图片的ps,排版多多看网上人家的好看的界面设计,至于图片,只能自己上手了,设计最终的目的是好看,好看,好看. 接下来,做个 ...

  9. Xamarin For Android 遇到错误java.exe exited with code 1. (msb6006)

    今天用Xamarin编译一个android工程遇到这样一个问题:java.exe exited with code 1. (msb6006),项目代码没有问题.于是各种谷歌 ,在http://foru ...

  10. make: Nothing to be done for `first'

    在qt目录下make后出现以下错误: make: Nothing to be done for `first' 解决:将你当前目录下的,删除你程序主要的 *.cpp 和 *.h文件以外的所有文件. 接 ...