1、定义变量

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

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

$变量:数值;

$color_r : red;
div{
color:$color_r;
}

2、if判断语句

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

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

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

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

$c1 : red;
$c2 : blue;
$c3 : pink;
$c4 : green;
$res:z; div{
width: 100px;
height: 100px;
@if $res == a {
color: $c1;
}
}

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

div{
width: 100px;
height: 100px;
@if $res == a {
color: $c1;
} @else{
color: $c2;
}
}

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

@if 变量 判断符号 数值 { 样式1 }
@else if 变量 判断符号 数值 { 样式2 }
@else if 变量 判断符号 数值 { 样式3 }
@else { 样式4 }
div{
width: 100px;
height: 100px;
@if $res == a {
color: $c1;
} @else if $res == b{
color: $c2;
} @else if $res == c{
color: $c3;
} @else{
color: $c4;
}
}

3、循环语句

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

for循环

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

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

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

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

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

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

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

例如:@for $i from 1 throught 3

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

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

each循环

循环数值的语法

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

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

each语句

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

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

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

$arr : (1,red),(2,blue),(3,pink),(4,orange),(5,green);

@each $index , $value in $arr {
li:nth-child(#{$index}){
color: $value;
}
}

4、结构嵌套

父子 ,后代 关系

父子后代关系

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

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

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

父级{

css属性:属性值

> 子级{ 父子

子级css属性:属性值

}

子级{ 后代

子级css属性:属性值

}

&:hover{

伪类的属性:属性值

}

}

div{
width:300px;
height:300px;
background:pink; // 直接在父级css中,定义子级样式
// >span{
// color:red;
// } // 直接在父级中,定义后代样式
span{
color: blue;
} // 直接定义当前标签的伪类选择器
&:hover{
background: gray;
}
}

5、属性嵌套

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

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

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

div{
width: 100px;
height: 100px;
margin: 100px {
top: 50px;
};
border: 1px solid red{
top: 4px solid blue;
};
}

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

使用场景:

一般设定兼容前缀时使用

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

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

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

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

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

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

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

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

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

// 没有参数
@mixin t1{
-webkit-transition:all 2s;
-moz-transition:all 2s;
-ms-transition:all 2s;
-o-transition:all 2s;
transition:all 2s;
}
h1{
@include t1();
}

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

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

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

// 有参数,没有默认值
@mixin t2($type,$time) {
-webkit-transition:$type $time;
-moz-transition:$type $time;
-ms-transition:$type $time;
-o-transition:$type $time;
transition:$type $time;
}
div{
width: 100px;
height: 100px; // 调用混合器
// @include t1(); // 调用混合器,输入实参
@include t2( all , 3s );
} p{
@include t2( height , 10s );
}

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

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

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

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

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

// 有参数,有默认值
@mixin t3($type:all,$time:3s) {
-webkit-transition:$type $time;
-moz-transition:$type $time;
-ms-transition:$type $time;
-o-transition:$type $time;
transition:$type $time;
}
h1{
@include t3();
} h2{
@include t3(font-size);
} h3{
@include t3(left);
}

项目中经常用到的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. Mac终端美化(iterm2+zsh+oh-my-zsh+powerlevel10k)

    iterm2+zsh+oh-my-zsh+powerlevel10k 一.下载iterm2 方式一:官网下载 https://iterm2.com/ 方式二:百度云下载 链接: https://pan ...

  2. canvas点阵函数波动,类似飘带或水波

    canvas动画利用函数波动特点制作水波动画 <canvas id="myCanvas" width="500" height="400&quo ...

  3. Linux下Nginx基础应用

    Nginx简介: Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.其将源代码以类BSD许可证的形式发布,因 ...

  4. frameset框架在.net网站中的小实现。

    一般我们生成网页,为减少代码的开发量,通常将不变的网页部分进行重用.通用为三种方法: 1.frameset框架 2.用户自定义控件 3.母版页(消耗资源大,不追叙) 通常1,2两种方法常用. 1.fr ...

  5. 嵌套div的onClick事件问题

    嵌套div的onClick事件问题我在下面的代码中的外层div中加了onClick事件,这样当鼠标点击这个div的时候就会跳转了.但是我在图片上加了一些其他效果,所以当鼠标点击中间的img时不能触发跳 ...

  6. 大数据学习(08)—— Hive简介

    前面的Hadoop学习是非常体系化的,有主线有细节.到了Hive这里,知识点非常零散,感觉没有什么主线能把它串起来.从官方网站上就能看出这点差异. 什么是Hive Hive是一个基于Hadoop的企业 ...

  7. Jetpack Compose学习(1)——从登录页开始入门

    原文地址:Jetpack Compose学习(1)--从登录页开始入门 | Stars-One的杂货小窝 Jetpack Compose UI在前几天出了1.0正式版,之前一直还在观望,终于是出了正式 ...

  8. 谷歌内部流出Jetpack Compose最全上手指南,含项目实战演练!

    简介 Jetpack Compose是在2019Google i/O大会上发布的新的库.Compose库是用响应式编程的方式对View进行构建,可以用更少更直观的代码,更强大的功能,能提高开发速度. ...

  9. 面试利器!字节跳动2021年Android程序员面试指导小册已开源

    整份手册分为两个部分,分别是:Java部分.Android部分.数据结构与算法篇.字节跳动2020年全年面试题总结篇! 每个知识点都有左侧导航书签页,看的时候十分方便,由于内容较多,这里就截取一部分图 ...

  10. 建立局域网内使用的CentOS7-OpenStack源

    by 无若 1. 先建立局域网内使用的CentOS7源 这个参看 http://www.cnblogs.com/gleaners/p/5735472.html 2. 抓取所有OpenStack的包,文 ...