1、定义变量

使用:$(符号定义变量)

注意:使用时要带有‘$’符号,定义变量的方式与PHP相同

$变量:数值;

  1. $color_r : red;
  2. div{
  3. color:$color_r;
  4. }

2、if判断语句

执行逻辑与js中的if判断完全相同

使用:@if、 @else if、@else

注意:判断条件没有()直接写就行

2-1 @if 变量 判断符号 数值 { 样式 }

  1. $c1 : red;
  2. $c2 : blue;
  3. $c3 : pink;
  4. $c4 : green;
  5. $res:z;
  6. div{
  7. width: 100px;
  8. height: 100px;
  9. @if $res == a {
  10. color: $c1;
  11. }
  12. }

2-2 @if 变量 判断符号 数值 { 样式1 } @else { 样式2 }

  1. div{
  2. width: 100px;
  3. height: 100px;
  4. @if $res == a {
  5. color: $c1;
  6. } @else{
  7. color: $c2;
  8. }
  9. }

2-3 @else if 变量 判断符号 数值 { 样式2 }

  1. @if 变量 判断符号 数值 { 样式1 }
  2. @else if 变量 判断符号 数值 { 样式2 }
  3. @else if 变量 判断符号 数值 { 样式3 }
  4. @else { 样式4 }
  1. div{
  2. width: 100px;
  3. height: 100px;
  4. @if $res == a {
  5. color: $c1;
  6. } @else if $res == b{
  7. color: $c2;
  8. } @else if $res == c{
  9. color: $c3;
  10. } @else{
  11. color: $c4;
  12. }
  13. }

3、循环语句

注意:关键词前,添加@符号,没有()

for循环

3-1 @for 变量 from start数值 to end数值 {代码}

解释:从‘start数值’开始循环,‘end数值’结束循环,但不包括‘end数值’

例如:@for $i from 1 to 3{代码}

循环是 $i=1 和$i=2 的两次循环,没有3

  1. @for $i from 1 to 6 {
  2. li:nth-child( #{$i} ){
  3. color: red;
  4. border: 1px*$i solid #000;
  5. }
  6. }

3-2 @for 变量 from start数值 through end数值 {代码}

解释:从‘start数值’开始,中止数值是‘end数值’,并且包括‘end数值’

例如:@for $i from 1 throught 3

循环是 $i=1 和 $i=2 和 $i=3 的3次循环

  1. @for $i from 1 through 5 {
  2. li:nth-child( #{$i} ){
  3. color: red;
  4. border: 1px*$i solid #000;
  5. }
  6. }

each循环

循环数值的语法

sass中定义数组:$变量:(1,数值1),(2,数值2),(3,数值3)...

注意:sass中定义数组,数值索引下标从1开始

each语句

@each $变量1 ,$变量2 in $ 数值变量 {执行程序}

$变量1: 存储数组的索引

$变量2: 存储数值的数据

  1. $arr : (1,red),(2,blue),(3,pink),(4,orange),(5,green);
  2. @each $index , $value in $arr {
  3. li:nth-child(#{$index}){
  4. color: $value;
  5. }
  6. }

4、结构嵌套

父子 ,后代 关系

父子后代关系

之前的css,是 父级, 子级分开定义

现在是 在 父级中 嵌套定义子级属性

还可以嵌套定义父级的伪类选择器

父级{

css属性:属性值

> 子级{ 父子

子级css属性:属性值

}

子级{ 后代

子级css属性:属性值

}

&:hover{

伪类的属性:属性值

}

}

  1. div{
  2. width:300px;
  3. height:300px;
  4. background:pink;
  5. // 直接在父级css中,定义子级样式
  6. // >span{
  7. // color:red;
  8. // }
  9. // 直接在父级中,定义后代样式
  10. span{
  11. color: blue;
  12. }
  13. // 直接定义当前标签的伪类选择器
  14. &:hover{
  15. background: gray;
  16. }
  17. }

5、属性嵌套

在当前属性值,设定特殊的属性值

例如:margin:四个方向属性都是100px {

需要单独设定 matgin-left:500px;};

  1. div{
  2. width: 100px;
  3. height: 100px;
  4. margin: 100px {
  5. top: 50px;
  6. };
  7. border: 1px solid red{
  8. top: 4px solid blue;
  9. };
  10. }

6、混合器 -- 类似于js中的函数

使用场景:

一般设定兼容前缀时使用

一些多次重复使用的css样式

使用:混合器关键词 @mixin 混合器名称(){}

调用混合器:@include 混合器名称()

如果是知识纯粹的编译 sass 文件,混合器是原样执行

如果使用 gulp 打包压缩,因为 gulp 有添加前缀的 打包规范,会根据兼容浏览器版本不同,添加不同的兼容语法

打包之后的 css 兼容,可能与你写的css兼容不同

语法形式1 没有参数 也就是没有()

定义时: @mixin 混合器名称 {}

使用时: @include 混合器名称()

  1. // 没有参数
  2. @mixin t1{
  3. -webkit-transition:all 2s;
  4. -moz-transition:all 2s;
  5. -ms-transition:all 2s;
  6. -o-transition:all 2s;
  7. transition:all 2s;
  8. }
  9. h1{
  10. @include t1();
  11. }

语法形式2 有参数,但是参数没有默认值

定义时: @mixin 混合器名称($参数1,参数2) {}

使用时: @include 混合器名称(实参1,实参2)

  1. // 有参数,没有默认值
  2. @mixin t2($type,$time) {
  3. -webkit-transition:$type $time;
  4. -moz-transition:$type $time;
  5. -ms-transition:$type $time;
  6. -o-transition:$type $time;
  7. transition:$type $time;
  8. }
  9. div{
  10. width: 100px;
  11. height: 100px;
  12. // 调用混合器
  13. // @include t1();
  14. // 调用混合器,输入实参
  15. @include t2( all , 3s );
  16. }
  17. p{
  18. @include t2( height , 10s );
  19. }

语法形式3 有参数,有默认值

必须给所有的形参都赋值默认值

不能有的有默认值有的没有默认值

定义时: @mixin 混合器名称($参数1:默认值,参数2:默认值) {}

使用时: @include 混合器名称(实参1,实参2)

  1. // 有参数,有默认值
  2. @mixin t3($type:all,$time:3s) {
  3. -webkit-transition:$type $time;
  4. -moz-transition:$type $time;
  5. -ms-transition:$type $time;
  6. -o-transition:$type $time;
  7. transition:$type $time;
  8. }
  9. h1{
  10. @include t3();
  11. }
  12. h2{
  13. @include t3(font-size);
  14. }
  15. h3{
  16. @include t3(left);
  17. }

项目中经常用到的sass语法汇总的更多相关文章

  1. 项目中oracle存储过程记录——经常使用语法备忘

    项目中oracle存储过程记录--经常使用语法备忘 项目中须要写一个oracle存储过程,需求是收集一个复杂查询的内容(涉及到多张表),然后把符合条件的记录插入到目标表中.当中原表之中的一个的日期字段 ...

  2. vue入坑教程(二)在vue项目中如何导入element以及sass

    在项目中导入element以及sass.stylus等方便开发的工具以及UI框架 (1)如何在vue项目中导入elementUI框架 elementUI是饿了么团队开发出来基于vue的前端UI框架,其 ...

  3. 项目开发---使用node.js中sass语法

    前言:本文中所有sass文件都指后缀名为scss的文件.在此也建议使用后缀名为scss的文件,以避免sass后缀名的严格格式要求报错. 一.sass插件的安装: gulp-sass-china //  ...

  4. Vue项目中sass语法该怎么用?

    最近开始着手Vue框架,被各种报错蹂躏,其中有一个就是sass语法,<style>标签中添加<style lang="scss">,发现报错,在网上找了一些 ...

  5. scss/less语法以及在vue项目中的使用(转载)

    1.scss与less都是css的预处理器,首先我们的明白为什么要用scss与less,因为css只是一种标记语言,其中并没有函数变量之类的,所以当写复杂的样式时必然存在局限性,不灵活,而scss与l ...

  6. Vue项目中如何使用Element-UI以及如何使用sass

    Vue项目中如何使用Element-UI以及如何使用sass 当我们在开发Vue项目的时候通常会选择Element-UI作为我们的UI框架,其官方中文文档地址是http://element.eleme ...

  7. ionic 项目中 使用 sass

    注: 1.先安装node-sass  -->> npm install --save node-sass --registry=https://registry.npm.taobao.or ...

  8. C++\CLI语法 在项目中的使用

    通常情况下,对一个标准的com组件进行集成,网上普遍使用的方式有: 1.#import *.dll 或 #import *.ocx的方式,VS编译器重新编译后,就会自动生成组件对应的*.tlh文件,该 ...

  9. nuxt 脚手架创建nuxt项目中不支持es6语法的解决方案

    node本身并不支持es6语法,我们通常在vue项目中使用es6语法,是因为,我们使用babel做过处理, 为了让项目支持es6语法,我们必须同时使用babel 去启动我们的程序,所以再启动程序中加 ...

随机推荐

  1. SAML 2.0简介(1)

    1.什么是SAML: SAML是Web浏览器用来通过安全令牌启用单点登录(SSO)的标准协议 2.优点: 跨多个应用程序管理用户身份和授权. 3.单点登录(SSO)是什么: 它使用户仅使用一组凭据(用 ...

  2. [考试总结]noip模拟9

    因为某些原因,咕掉了一段时间 所以现在才更新 T1 斐波那契 一看就是规律 然而我选择了暴力 其实完全可以打表去找规律. 然后就可以发现父亲的顺序也是斐波那契. 就这 #include<bits ...

  3. Python基础之获取路径与切换路径

    一直以为我写了关于路径有关的博客,看了一圈才发现没写,那么现在就来整理下. 一.获取当前路径 os.getcwd() 二.获取当前文件路径:(__file__是当前执行文件) os.path.absp ...

  4. 1.4matlab矩阵的表示

    1.4matlab矩阵的表示 矩阵的建立 利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵的顺序输入各元素,同一行的各元素之间用逗号或空格分隔,不同行的元素之间用分号分隔. 利用已建立好的矩 ...

  5. Couchdb 垂直权限绕过漏洞(CVE-2017-12635)

    影响版本:小于 1.7.0 以及 小于 2.1.1 首先,发送如下数据包: 修改数据包 { "type": "user", "name": ...

  6. 漫谈CUDA优化

    ​ 作者:Lawliet 翻译:仿佛若有光 前言: 几个月前,我根据 Simoncelli 2016 年的论文编写了自己的自动编码器,用于研究目的.一开始,我想使用一些流行的深度学习框架(例如 Ten ...

  7. 一些Shell脚本记录

    查看换行符 使用vim打开文件,输入:set ff?.根据返回结果可以文件类型 字符串 opcenter.sjb.bz [root@opcenter backup]# echo ${HOSTNAME% ...

  8. C++ 结构体+数组+取随机数 案例(打印3名老师 带着 5名学生)结构体

    1 //结构体案列 2 3 #include<iostream> 4 #include<string> 5 #include<ctime> 6 using name ...

  9. WPS函数

    vlookup函数:=VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 官方解释:其逻辑为在某一区间内搜索区间外某一单元格的值, ...

  10. Android茫茫半年求职路,终于斩获三个大厂offer

    前言 2019年底,公司出现危机,开始"优化",本组一个小兄弟被"优化",于是我也着手开始做准备,将来若轮到我被"优化",出去面试时也好打个 ...