一.sass的基本概念

sass是css的"预处理器", 一门专门的css编程语言
增加了变量, 函数, 计算, 嵌套关系等用法,让css编写更简洁, 清晰.

二. scss的安装步骤

  1. 首先查询一下是否已经安装过sass, 在cmd中输入sass -v 或者 sass --version
sass -v
sass --version

使用上面任意一个命令,出现以下几种情况都是已经安装好了
1.52.1 complied with dart2js 2.17.1
ruby 1.52.1
Ruby Sass 3.7.4
版本有差别请忽略

  1. 如果没有出现版本号,那就在cmd中执行命令
npm install -g sass

如果是Mac电脑,电脑会中自带ruby,也可以使用ruby安装

sudo gem install sass

安装完成后执行第一步,再查看一下版本号,有版本号就安装完成了.

三.sass的版本和半自动化监听

  1. 关于版本
    早期sass的后缀名是.sass
    3.0版本以后, 后缀名改成了.scss 这种后缀使用的是css语法

  2. 使用半自动化监听方法
    这里是实现scss文件有变动,自动生成css文件

  1. 首先要在项目目录中有两个文件夹, 一个是 scss ,一个是css. scss文件夹中存放sass文件, css文件夹中存放编译过后生成的css文件.
    在sass文件夹中新建一个 page1.scss 文件
    目录结构:

  2. 在scss 和 css 文件夹的上层父级目录,打开cmd窗口
    ,注意项目路径中不能出现中文,否则会报错
    在 cmd 窗口输入

sass scss/page1.scss:css/page1.css

  1. 在cmd执行命令
sass -w scss:css

-w 表示 watch 监听的含义, 就是只要scss文件夹有变动, 就立即编译到 css 文件夹中,这样就实现了半自动化
如果我们修改scss文件的内容就会自动同步生成到css文件中
如果监听的命令没有执行成功,可以按ctrl + c 退出

四.sass的基本语法

到这里终于可以开始写sass代码了,首先学习基本语法.

  1. 嵌套规则
    按照html结构的嵌套关系,在sass文件中使用{}

// 例如:有一个html结构 .box>a
注意:因为安装版本不同,有的在scss文件中写中文注释会报错,尽量不要使用中文的注释

.box {border: 1px solid #000;a{text-decoration: none;}
}

样式如下图:

  1. 父选择器

  2. 变量的使用
    a. 变量的读取顺序

$a:100px;
$b:center;
$c:#f00;
$zts:#0aa1ed;
div {width: $a;height: 100px-10px;text-align: $b;color: $c;background-color: $zts;//border-color: $hello;$hello: green;p {background-color: $hello;}
}

b. 变量有作用域
全局变量直接写在scss文件中
局部变量是写在某个选择器{}中的, 只有在{} 作用域内的选择器才可以使用局部变量

  1. 计算功能
    一般不推荐用sass计算, 推荐用js计算
    因为使用sass计算的过程中,有的电脑可以计算并编译,有的会报错或者直接不编译
    原因是系统I/O 读写 调用顺序导致的
    例如,使用除计算时,会编译成以下错误代码:

  2. 插值语句
    格式: #{变量名}
    我们不能直接用变量名作为选择器的名字,
    如果需要使用变量名,就需要使用#{}包裹变量名, 才可以使用, 否则会报错

五. 混合&继承&占位符

  1. 混合指令的语法
    @mixin 创建混合指令的方法, 指令的自定义明不能以数字开头
    @include 使用混合指令的名字

  2. 继承
    一个元素使用另一个元素的全部样式,注意! 是全部样式, 继承不可以选择部分样式
    @extend 继承的规则,继承规则后面放的是要继承的选择器名字, 注意选择器要写全, 继承会在编译之后形成群组选择器, 使代码更加优化
    继承多个选择器可以用逗号连接多个选择器的名字

  3. 占位符选择器%
    占位符选择器的样式可以被继承走,但是占位符不会被编译,类似泛型语法

六. 高级语法

  1. 条件语句
    @if(判断条件){条件为真时}@else{条件为假}
    @if(判断条件){条件1 为真时}@else if(判断条件2){条件2为真时}@else{以上条件均不满足时执行此处}
    注意:第一条件判断在sass中不能使用& 或者 | 要使用关键词 and 或者 or
    条件判断方式 > < >= <= !== == 这些都可以使用

  2. 循环语句
    @for $i from 1 to 5{ }
    @for 表示for循环
    $i 表示循环变量i
    注意:这里的for循环,变量每次只能自增1
    form 1 to 5 :表示从1到5,但注意不包含5

    @for $i from 1 through 5 { } 跟上面类似,区别是这里包含结束值5

scss安装入门到使用高级语法相关推荐

  1. 【Golang 快速入门】高级语法:反射 + 并发

    Golang 快速入门 Golang 进阶 反射 变量内置 Pair 结构 reflect 结构体标签 并发知识 基础知识 早期调度器的处理 GMP 模型 调度器的设计策略 并发编程 goroutin ...

  2. Gradle入门系列(二)——groovy高级语法

    groovy高级语法 一.json操作 使用groovy自带的json工具进行json操作 groovy.json.JsonSlurper:将json原数据转成实体对象 groovy.json.Jso ...

  3. webpack打包处理js文件中的高级语法

    前言 在js文件中定义一个User类 import $ from 'jquery' import './css/at.css' import './css/at.less' import './css ...

  4. 真正从零开始,TensorFlow详细安装入门图文教程!(linux)

    读懂智能&未来 首页 专栏 专题 公开课 AI慕课学院 爱搞机 极客购 申请专栏作者 业界人工智能智能驾驶AI+Fintech未来医疗网络安全AR/VR机器人开发者智能硬件物联网GAIR 业界 ...

  5. TensorFlow 真正从零开始,TensorFlow详细安装入门图文教程

    https://www.leiphone.com/news/201606/ORlQ7uK3TIW8xVGF.html 读懂智能&未来 首页 专栏 专题 公开课 AI慕课学院 爱搞机 极客购 申 ...

  6. 配置 postCSS 自动添加 css 的兼容前缀||打包样式表中的图片和字体文件||打包处理 js 文件中的高级语法

    配置 postCSS 自动添加 css 的兼容前缀 ① 运行 npm i postcss-loader autoprefixer -D 命令 ② 在项目根目录中创建 postcss 的配置文件 pos ...

  7. PJzhang:搜索引擎高级语法与渗透测试

    猫宁!!! 参考链接: https://www.freebuf.com/articles/network/169601.html https://www.jianshu.com/p/f8062e2cc ...

  8. c#中的反射的高级语法_Kubernetes第3部分中的seccomp新语法以及一些高级主题

    c#中的反射的高级语法 On this part I want to cover a few isolated points that hopefully together would give a ...

  9. commander入门教程及高级用法

    简介 commander是一个轻巧的nodejs模块,提供了用户命令行输入和参数解析强大功能 安装 cnpm i -S commander 最小力度的脚手架 入门教程及高级用法 // 注册命令:com ...

最新文章

  1. 利用Github+Jeklly搭建个人博客网站
  2. 如何实现软件的国际化
  3. 对于生活我选择了无奈
  4. Mysql 数据 导入 导出
  5. 1.3、Bootstrap V4自学之路------起步---浏览器支持
  6. 开发函数计算的正确姿势 —— 排查超时问题
  7. decaNLP-一个可以同时处理机器翻译、问答、摘要、文本分类、情感分析等十项自然语言任务的通用模型
  8. 复变函数在计算机科学中的应用,复变函数的应用以及发展史
  9. Python和Raspberry Pi物联网系统
  10. 泛函分析(空间部分)知识点总结
  11. 3DMAX,png库错误解决方法
  12. 网易互娱9.05笔试
  13. where 空集_MySQL where 条件的这个坑你碰到过没
  14. 网络安全工程师需要学什么?零基础怎么从入门到精通,看这一篇就够了
  15. 新能源汽车Tesla的命名
  16. [蓝桥杯2019初赛]立方和
  17. 解决linux只有ens33和lo网卡的问题
  18. 递归求阶乘和--PTA
  19. fir1截止频率计算_请教一下关于FIR滤波器的公式?
  20. 【呆鸟译Py】数据分析师进阶必备6大数学利器

热门文章

  1. 安科瑞AFK系列低压复合开关
  2. 一文让你彻底搞懂AQS(通俗易懂的AQS)
  3. java adt怎么使用_如何在eclipse中添加android ADT ADT插件的安装图文教程
  4. 计算机毕业设计PHP儿童早教产品网站设计
  5. 傅里叶变换 高通滤波 低通滤波
  6. 传华为将抢先苹果首发卫星通信 ;1200亿亿次每秒,阿里上线世界第一智算中心;wxPython团队辟谣已死传闻|极客头条
  7. 云和恩墨加入openGauss社区,为数据库开源生态持续贡献力量
  8. c语言中unsigned的用法
  9. 【neo4j忘记密码】neo4j忘记密码的处理方法
  10. nyoj284 坦克大战(dijkstra(bfs+优先队列))