Sass/Scss 基础篇

总结Sass学习到的内容


  • 应用Sass/Scss前,环境配置

    1. 首先下载Ruby (http://rubyinstaller.org/downloads)
    2. 通过命令下载sass gem install sass
    3. VScode配置 下载插件 Live Sass Compiler
    4. VScode配置 配置工作区中的setting.json
      "liveSassCompile.settings.formats":[
      // 扩展
      {
      "format": "compact",//可定制的出口CSS样式(expanded,compact,compressed,nested)
      "extensionName": ".min.css",//编译后缀名
      "savePath": null//编译保存的路径
      } ],
      "liveSassCompile.settings.generateMap": false, //不生成map文件
      "liveSassCompile.settings.excludeList": [
      "**/node_modules/**",
      ".vscode/**"
      ** // 只是编译当前的sass文件
      ],
      "liveSassCompile.settings.autoprefix": [
      "> 1%", //">1%"是指 通过全球使用情况统计信息选择出的高于1%使用率的浏览器版本。
      "last 3 versions" //"last 3 versions"是指 每个浏览器的最后3个版本。

      "ie >= 6", //ie6以上
      "firefox >= 8",
      "chrome >= 24",
      "Opera>=10"
      ]
  • Sass与Scss的区别

    Sass编译写法偏向于Python 没有大括号{}以及分号;

    Scss编译写法偏向于CSS 有大括号和分号

  • 编译方法

    1. 命令编译

      <Sass文件PATH> : <编译后的CSS文件的PATH> (单文件)

      sass/ : css/ (多文件)

      sass --watch 自动监测代码变化,自动编译
    2. GUI编译 (VScode的自动编译 上面已配置)
    3. 自动化编译 Grunt和Gulp自动化 <cm: 后期要把这部分补上>
  • 编译出的样式

    1. 嵌套 -- nested 大括号不单都占行
    2. 展开 -- expanded 大括号单都占行
    3. 紧凑 -- compact 每项只占一行
    4. 压缩 -- compressed 全部一行 (后期推荐使用此方法,减轻文件所占内存)

Sass/Scss 基础知识

  • 默认变量声明:$btn-primary-color : #fff !default;

    想要改变默认值要在默认语句前面定义

  • 注释: //不在编译后CSS文件中显示 /* */在编译后CSS文件中显示

  • 数据类型:

    数字,字符串,颜色,布尔值,空值,值列表(用空格或逗号分开)

  • 字符串:

    有引号字符串"header-1"

    无引号字符串 sans-serifbold

    但是在使用插值的时候,无论调用的是否是无引号的字符串,都会被编译成无引号的字符串

  • 值列表:

    nth:访问值列表的某一项(第几项)

    append: 添加

    join: 连接多个列表

    @each:遍历值列表中的所有项目

  • 运算:

    加 减 乘 除

    乘法运算时: 20px * 2 后面的数字不能带单位

    除法运算时:

    在代码中"/"被认为是除法的情况:

    1. 算式中有变量
    2. 除法算式被()包围
    3. 不只有除法运算时

    当进行颜色运算时,十六进制#xxxxxx 当成十进制数字运算


Sass/Scss 常用标准方法--重要

  • 嵌套:

    -- 父类子类嵌套

    1. 选择器嵌套
    2. 属性嵌套
    3. 伪类嵌套

      注:尽量避免使用选择器嵌套,避免选择器太具体。否则对于后期维护,以及代码可读性都有很差的体验
  • 混合宏:@mixin (重点)

    -- 相当于用于被调用的小函数,用于通过同样的算法,自动生成各自的样式

    • 特点:

      1. 可带参数
      2. 调用方法 @include
      3. 可传一个不带值的参数--变量
      4. 传一个带值的参数--常量
    • 缺点:

      不动自动合并相同样式的代码
  • 扩展/继承:@extend

    -- 相当于CSS中堆叠样式,在父类样式的基础上再添加或改变样式

  • 占位符:%xxx

    -- 不被调用时,不会产生CSS代码,可以节省空间

  • 插值:Interpolation

    -- 与JS中join方法很像,主要是拼接功能

    • 可以用在调用继承以及调用占位符的时候,拼接选择器,拼接占位符的名,以及可以用于拼接属性 例:margin-top
    • 不能用于拼接变量&xx,混合宏的函数名 会报错

问题探讨

  • 混合宏 VS 继承 VS 占位符 (优劣对比)

    混合宏: 如果你的代码中涉及到变量,建议使用混合宏来创建相同代码。

    继承: 不需要变量时,并且基类(父类)在HTML中被使用时用继承

    占位符: 基类(父类)不在HTML被使用时,用占位符。

Sass/Scss 基础篇的更多相关文章

  1. 【项目实战】sass使用基础篇(上)

    Sass是一种CSS预处理语言.CSS预处理语言是一种新的专门的编程语言,编译后形成正常的css文件,为css增加一些编程特性,无需考虑浏览器的兼容性(完全兼容css3),让css更加简洁.适应性更强 ...

  2. Sass之一(基础篇)

    源码链接:http://pan.baidu.com/s/1o8M51hCSass 学习Sass之前,应该要知道css预处理器这个东西,css预处理器是什么呢? Css预处理器定义了一种新的语言将Css ...

  3. Sass进阶之路,之一(基础篇)

    Sass 学习Sass之前,应该要知道css预处理器这个东西,css预处理器是什么呢? Css预处理器定义了一种新的语言将Css作为目标生成文件,然后开发者就只要使用这种语言进行编码工作了.预处理器通 ...

  4. Sass-学习笔记【基础篇】

    最下边附结构图 在线编辑器网址如下:http://sassmeister.com/  注意编写的时候,符号千万别用了中文的:.:.....之类的,会报错,Sass也转换不成css. less和sass ...

  5. 基于vue2.x的webpack升级与项目搭建指南--基础篇

    first thing fitrst 博主声明:绝对不当标题党 有人看最好不过的背景: 十月初对公司产品的前端构建做了一些优化,但还遗留了不少问题(可了解我的前一篇博文:一次webpack小规模优化经 ...

  6. sass/scss 和 less的区别

    一. Sass/Scss.Less是什么? Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,Sass语法属于缩排语法,比css比多出好些功能(如变量 ...

  7. 前端总结·基础篇·CSS(三)补充

    前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 目录 一.移动端 1.1 视口(viewport) 1.2 媒体查询(medi ...

  8. 前端总结·基础篇·CSS

    前端总结·基础篇·CSS 1 常用重置+重置插件(Normalize.css,IE8+) * {box-sizing:border-box;}  /* IE8+ */body {margin:0;}  ...

  9. sass/scss 和 less对比

    一. Sass/Scss.Less是什么? Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,Sass语法属于缩排语法,比css比多出好些功能(如变量 ...

随机推荐

  1. Codeforces Round #672 (Div. 2) D. Rescue Nibel! (思维,组合数)

    题意:给你\(n\)个区间,从这\(n\)区间中选\(k\)个区间出来,要求这\(k\)个区间都要相交.问共有多少种情况. 题解:如果\(k\)个区间都要相交,最左边的区间和最右边的区间必须要相交,即 ...

  2. Codeforces Global Round 9 C. Element Extermination (思维,栈)

    题意:有一个长度\(n\)的序列,如果\(a_{i}<a_{i+1}\),那么可以选择删除\(a_{i}\)或者\(a_{i+1}\),再继续操作,问是否能够将序列删到只剩一个元素. 题解:感觉 ...

  3. 二叉排序树的构造 && 二叉树的先序、中序、后序遍历 && 树的括号表示规则

    二叉排序树的中序遍历就是按照关键字的从小到大顺序输出(先序和后序可没有这个顺序) 一.以序列 6 8 5 7 9 3构建二叉排序树: 二叉排序树就是中序遍历之后是有序的: 构造二叉排序树步骤如下: 插 ...

  4. WPF 中的逻辑树(Logical Tree)与可视化元素树(Visual Tree)

    一.前言 ​ WPF 中有两种"树":逻辑树(Logical Tree)和可视化元素树(Visual Tree). Logical Tree 最显著的特点就是它完全由布局组件和控件 ...

  5. Python 遭遇 ProxyError 问题记录

    最近遇到的一个问题,在搞清楚之后才发现这么多年的 HTTPS_PROXY 都配置错了! 起因 想用 Python 在网上下载一些图片素材,结果 requests 报错 requests.excepti ...

  6. 国产网络测试仪MiniSMB - 如何配置VLAN数据流

    国产网络测试仪MiniSMB(www.minismb.com)是复刻smartbits的IP网络性能测试工具,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太 ...

  7. MySQL 主从复制(下)

    延时复制 因为延时复制主从数据同一时间不一致, 所以延时从库一般只能做备份,不提供任何对外服务 配置延时复制(已经有主从) 1.停止主从 mysql> stop slave; Query OK, ...

  8. LEETCODE - 1228【等差数列中缺失的数字】

    C++: class Solution { public:     int missingNumber(vector<int>& arr) {         int subnum ...

  9. MS16-032 windows本地提权

    试用系统:Tested on x32 Win7, x64 Win8, x64 2k12R2 提权powershell脚本: https://github.com/FuzzySecurity/Power ...

  10. HLOD System

    1.1 HLOD System简介 首先,HLOD System主要的目标是为了减少Draw Call.然后,进行更多的Batch批处理,从而大大提高渲染性能,减少面数和纹理,这样我们相应地节省了内存 ...