一、SCSS语法:

·注释

注释分为三种:/* */css中显示,//css中不显示,/重要注释!/压缩不会被删掉。

·@import 命令导入外部sass、scss、css文件

<style lang="scss">
@import './test.scss'; //导入外部scss文件
.myText {border:1px solid red;
}
</style>

·变量

声明变量的语法是:$+变量名+:+变量值;如下

$color:red; //声明变量 $color

区分默认变量:

默认变量只需要在变量值后加上 !default , 用来设置默认值 ,对默认变量进行重新声明可以实现覆盖默认值;如

$color:red !default; //声明默认变量 $color
$color:purple; //根据需求覆盖默认变量
.father01 {color:$color;
}

区分全局变量和局部变量

全局变量是元素外声明的变量,局部变量是在元素里声明的变量,重复声明时局部变量会覆盖全局变量;

$height:200px; //全局变量声明不在大花括号内
$bgcolor:blue;
body {.father01 {  //嵌套width:$width;height:$height;$border:1px solid red; //局部变量是声明在元素内的border: $border;$bgcolor:purple; //全局变量和局部变量名一致时,调用局部变量进行覆盖background-color: $bgcolor;}
}

局部变量值后加上 !global 关键词可以使得局部变量变成全局变量;

body {.father01 {width:200px;height:200px;$border:1px solid red !global; //使用global关键词将$border变为了全局变量border:$border;}.father02 {width: 300px;height:300px;border:$border; //使用全局变量}
}

·变量嵌套引用:即字符串插值,需要使用 #{} 来进行包裹

$left:left;
.father02 {width: 300px;height:300px;border:$border; //使用全局变量
border-#{$left}:2px solid purple; //使用字符串插值之前必须先声明
}

·变量计算

$left:left;
.father02 {width: 300px;height:300px;border:$border; //使用全局变量
border-#{$left}:2px solid purple; //使用字符串插值之前必须先声明
}

·嵌套

选择器嵌套不多说了

属性嵌套(有相同属性前缀)如下

border:{color:red;width:5px;style:solid;
}

在嵌套时候可以使用 & 来引用父元素

.container {&>p {   //可以编译成CSS的 .container>p {} 效果color:purple;}
}

·继承

继承 .class 使用 @extend

.container {color:purple;border:2px dashed purple;
}
.myText {@extend .container; //这里将继承.container类的所有样式font-size: 22px;
}

·SCSS占位符 %

使用% 声明的代码块,如果不被@extend调用的话就不会被编译。编译出来的代码会将相同的代码合并在一起,代码变得十分简洁。

%m5 { background-color: lightblue;}
.P1 { @extend %m5; }

·重复代码块,使用混合@mixin命令定义,以及使用@include调用该mixin

@mixin normalStyle {//使用@mixin命令定义可重复使用的代码块width:300px;height:100px;color:black;background-color:lightblue;
}
.container {@include normalStyle;//使用@include 命令引用@mixin定义的代码块
}

在使用@mixin和@include时,传入参数和默认值

@mixin normalStyle($width,$height,$color,$defaultValue:orange) {width:$width;height:$height;color:$color;background-color:$defaultValue;
}
.container {@include normalStyle(300px,100px,green,lightgray);
}

二、SCSS使用编程式方法

·条件语句

.container {p {@if 1+1<3 {border:1px solid blue;} @else {border:1ps dashed palevioletred;}}
}

·SCSS中的三种循环

1、for循环

在sass中的@for循环有两种方式:

① @for $i from through

② @for $i from to

其中$i表示变量,start表示开始值,end表示结束值;

through表示包括end这个数值;to表示不包括end这个数值;

2、while循环

只要@while后面的条件为true就会执行,直到表达式值为false时停止循环;

3、each in循环

就是去遍历一个列表,然后从列表中取出对用值;他的指令形式为:@each $var in <list>($var为变量值,list为sassscript表达式)

//for 循环
@for $i from 1 to 5 {.item-#{$i} {border:#{$i}px solid;}
}
//while 循环
$m:8;
@while $m > 0 {.items-#{$m} {width:2em*$m;}$m:$m - 2 ;
}
//这里可以对$m进行运算 让它每次都减去2
//each 语法
@each $item in class01,class02 { //$item就是遍历了in关键词后面的类名列.#{$item} {background-color:purple;}
}
//会编译成 .class01 , .class02 {background-color:purple;}

·使用@function 自定义函数及使用

@function double($sn){ //SCSS允许自定义函数@return $sn*2;
}
.myText {border:1px solid red;width:double(200px); //使用在SCSS中自定义的函数
}

·可以直接使用SCSS内置的颜色函数,

.myText {color:black;&:hover{//以下的lighten()、darken()等是SCSS内置的颜色函数color:lighten(#cc3, 10%); // #d6d65c颜色变浅color:darken(#cc3, 10%); // #a3a329颜色加深color:grayscale(#cc3); // #d6d65ccolor:complement(#cc3); // #a3a329}
}

SCSS 的使用语法相关推荐

  1. scss2css vscode设置_VSCode下让CSS文件完美支持SCSS或SASS语法方法

    VSCode下让CSS文件完美支持SCSS或SASS语法方法 习惯Webpack + PostCSS后, 通常PostCSS都是直接对CSS文件进行处理, 但是大部分习惯SCSS/SASS/LESS的 ...

  2. SCSS常用语法总结

    Scss 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables).嵌套 (nested rules).混合 (mixins).导入 (inline imports ...

  3. scss支持的嵌套css规则

    如下例子: #content article h1 { color: #333 } #content article p { margin-bottom: 1.4em } #content aside ...

  4. SCSS和Sass有什么区别?

    根据我的阅读,Sass是一种语言,它通过变量和数学支持使CSS更加强大. SCSS有什么区别? 是否应该使用相同的语言? 类似? 不同? #1楼 基本区别是语法. 尽管SASS的语法宽松,带有空格,没 ...

  5. SCSS 和 Sass 有什么区别?

    问: 从我一直在阅读的内容来看,Sass 是一种通过变量和数学支持使 CSS 更强大的语言. 与 SCSS 有什么区别?它应该是同一种语言吗?相似的?不同的? 答1: huntsbot.com – 程 ...

  6. .scss和.css的区别,css - SCSS和Sass有什么区别?

    css - SCSS和Sass有什么区别? 从我一直在阅读的内容来看,Sass是一种通过变量和数学支持使CSS更强大的语言. 与SCSS有什么区别? 它应该是同一种语言吗? 类似? 不同? bruno ...

  7. sass、scss、css、less

    less.scss.sass都是CSS预处理器语言 为什么要使用CSS预处理器? css缺点: (语法不够强大,比如无法嵌套书写,导致模块化开发中需要书写很多重复的选择器: 没有变量和合理的样式复用机 ...

  8. 前端知识——css 之预处理器 less 语法

    目录 1. less 语法 1.1 变量(Variables) 1.2 嵌套(Nesting) 1.3 运算(Operations) 1.4 混合(Mixins)和映射(Maps) 1.5 其他语法补 ...

  9. CSS - 预处理器SCSS

    目录 SCSS简介 SCSS 编译环境安装 Live Sass Compiler ​编辑 npm包 sass SCSS语法概览 嵌套语法 选择器嵌套 选择器嵌套中的父选择器 & 属性嵌套 注释 ...

最新文章

  1. VGG16迁移学习实现
  2. Python中的特殊成员和魔法方法
  3. HPE第四季度财报数据喜忧参半
  4. linux android ndk r9b JNI 开发过程(COCOS2D-X配置)
  5. ubuntu12下subversion 1.6升级为1.8版本
  6. MySql详解(六)
  7. (6)css盒子模型(基础下)
  8. python字符串转换元组_python 字符串,列表,元组,字典相互转换
  9. Linux下自动备份Oracle数据库并删除指定天数前的备份
  10. 给做技术的换一道菜尝尝:一月冲皇冠?凶残级淘宝店主,无法阻挡的爆款名城!...
  11. 中南大学数字中南、电信校园网无法弹出验证界面解决方法
  12. Java Tomcat生成图片验证码不显示问题 超坑记录
  13. 正说:SAP HANA大裁员
  14. php数组倒排,js中数组倒序排列的方法
  15. 计算机毕业设计之java+jsp517报刊图书征订管理系统
  16. 怎样开发自己的Telegram Bot
  17. JetPack Compose之Modifier修饰符
  18. 3、关于onclick事件的两种写法
  19. hyper-v导入硬盘无法启动解决方法
  20. linux中用zip压缩文件,详解Linux中zip压缩和unzip解压缩命令及使用详解

热门文章

  1. 8.14.4. jsonb Indexing
  2. Android 手机屏幕熄灭,传感器会失效
  3. python词云分析---政府工作报告关键词
  4. 产品分析|虎扑APP
  5. 掘金量化交易接口的类型有哪些?
  6. 分享软件——百度网盘快速下载和照片转字符文字
  7. 面具卡米怎么删模块_一加8/8Pro/7Tpro等系使用Magisk模块更换字体+修改手机字体教程...
  8. 可快速部署的轻量级运维监控系统——WGCLOUD
  9. 【SAP】根据物料凭证批量查询对应的序列号并导出
  10. 关于移动安全攻击技术分析笔记