一、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. HDU5934(强连通分量)
  2. boost::sort相关的测试程序
  3. intvar mysql_mysql binlog格式解析(一)
  4. 数据结构杂谈(六)——队列
  5. 15.Numpy之点乘、算术运算、切片、遍历和下标取值
  6. 统计面要素中点要素的个数.
  7. 解决allwinner bootlogo.bmg 开机logo 修改 后变绿
  8. 树莓派安装拼音输入法(此处为谷歌拼音输入法)
  9. 数学建模之综合评价模型(层次分析法+Topsis法+熵权法)
  10. 7.20 - 每日一题 - 408
  11. 世界50所知名大学开放课程列表及对应网站
  12. Zookeeper的Centos集群搭建
  13. Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network论文翻译——中英文对照
  14. Android开发 屏幕截图
  15. 【距离产生美xp主题】_8.30
  16. 论文分享 Deep Distance Transform for Tubular Structure Segmentation in CT Scans
  17. 代自序 财富寓言:羊、狼、狮子与大象(1)
  18. Ubuntu设置开机引导时间(同样适合双系统)
  19. 【无标题】结构体案例1
  20. 施工员证怎么报考?施工员证需要什么条件才能考?

热门文章

  1. 大学生计算机大赛acm,浙大三位学生获全球大学生计算机竞赛总冠军
  2. 合肥市noi计算机竞赛,合肥第一,获“强基计划”资格!孙乐然斩获第37届全国信息学奥林匹克竞赛银牌...
  3. monkeyrunner(草稿)
  4. 论文排版神器——Texlive + TexStudio
  5. Arcgis api for JavaScript 4.X 学习——图层加载(要素图层、栅格图层、切片图层)
  6. zblog php伪静态,zblog php 伪静态设置详解
  7. BLH,xyH,XYZ在坐标系当中各代表什么意思?
  8. java将图片转成缩略图,将图片生成缩略图Java代码实现
  9. OKLink区块链浏览器连续升级,欧科云链持续推动区块链技术创新
  10. 常见的文件类型:mime.json