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. Ubuntu上安装Python3编译器和 Pycharm 集成开发环境

    一.安装python3 (Ubuntu上面是自带python编译器的,可以用命令"python -V"来查看版本号.我下面安装的是pyhton3编译器) 一条命令就可以 sudo ...

  2. Educational Codeforces Round 91 (Rated for Div. 2) C. Create The Teams (模拟)

    题意:有\(n\)个队员,每个队友都有一个能力值,构造队伍,要求队伍人数*队伍中最低能力值不小于\(x\),求能构造的最大队伍数. 题解:大水题,排个序,倒着模拟就行了. 代码: int t; int ...

  3. 使用 Nginx 在 Linux 上托管 ASP.NET Core

    server { listen 80; server_name example.com *.example.com; location / { proxy_pass http://localhost: ...

  4. 梨子带你刷burp练兵场(burp Academy) - 服务器篇 - Sql注入 - SQL injection UNION attack, determining the number of columns returned by the query

    目录 SQL injection UNION attack, determining the number of columns returned by the query SQL injection ...

  5. c++ cin 读入txt的问题

    源程序 #include <iostream> using namespace std; struct Stack { int tos; int stackarray[1000]; }; ...

  6. win10安装CUDA CUDNN tensorflow-gpu 1.14

    #1 安装anaconda 官网下载安装即可.python3.7版本 #2 安装CUDA CUDNN   tensorflowgpu1.14 对应CUDNN 7.6.1 CUDA 10.0 注意ten ...

  7. 牛客多校第三场J LRU management(双向链表)题解

    题意: 给一个长度为\(m\)的队列,现给定以下操作: \(opt=0\),插入一个串,如果不在队里直接插入栈尾,如果超出\(m\)删队首:在队里就拿出来重新放到队尾,返回\(v\)值. \(opt= ...

  8. BZOJ 3676 回文串(回文树)题解

    题意: 一个回文的价值为长度 * 出现次数,问一个串中的子串的最大回文价值 思路: 回文树模板题,跑PAM,然后计算所有节点出现次数. 参考: 回文串问题的克星--Palindrome Tree(回文 ...

  9. POJ 2923 Relocation(状压DP)题解

    题意:有2辆车运货,每次同时出发,n(<10),各自装货容量c1 c2,问最少运几次运完. 思路:n比较小,打表打出所有能运的组合方式,用背包求出是否能一次运走.然后状压DP运的顺序. 代码: ...

  10. linux 基础正则表达式练习

    感谢鸟哥!!! 如果Linux能够直接连网络,使用以下命令还获取文件吧 wget http://linux.vbird.org/linux_basic/0330regularex/regular_ex ...