• Sass 回顾


    中文官网:https://www.sass.hk/

    #、什么是 Sass

    Sass 是一种 CSS 的预编译语言,它扩展了 CSS 语言,增加了 变量(variables)、嵌套(nested rules)、混合(mixins)、函数(functions)、运算等特性,并完全兼容 CSS 语法,使 CSS 更易维护。它能够帮助复杂的样式表更有条理,并且易于在项目内部或跨项目共享设计。 

    #、Sass 优势

    它是一种预处理语言,提供了 CSS 语法

    它是 CSS 的超集,包含了 CSS 的所有功能

    它是更稳定,功能更强大的 CSS 扩展和样式文档,结构更清晰,它可以帮助你以更少的代码编写 CSS

    它促进了可重用性方法,逻辑语句以及一些内置功能,例如颜色处理,数学和参数列表项

    它具有用于库的高级控制指令

    它提供格式良好,可自定义的输出

    #、sass 脚本支持哪些数据类型?

    布尔值、数(像素)、空值、颜色、文本字符串、用逗号或空格分隔的值列表(2.0em,Verdana,Arial)、从一个值映射到另一个值(键1:值1,键2:值2)

    sass 始终支持所有其他类型的 CSS 属性值

    #、scss 和 sass 之间的区别

    sass 就像 CSS 预处理器。它具有 CSS3 的扩展名。 Sass 源自另一个称为 Haml 的预处理器

    sass 包含2种语法:

      SCSS 是第一种语法,它使用 .scss 扩展名

      缩进语法或 Sass 是另一种语法,它使用 .sass 扩展名

    你只需将扩展名从 .css 更改为 .scss,即可将有效的 CSS 文档隐藏到 Sass 中。它与 CSS 完全兼容。

    Scss 提供 CSS 友好的语法来缩小 Sass 与 CSS 之间的差距。Scss 称为 Sassy CSS

    #、变量

    Sass 让人们受益的一个重要特性就是它为 CSS 引入了变量。把可以反复使用的 CSS 属性值定义成了变量,然后通过变量名来引用他们,而无需重复书写这一属性值。或者对于仅使用过一次的属性值,可以赋予其一个易懂的变量名,让人一眼就知道这个属性值的用途。

    Sass 使用 $ 符号来标识变量:

    这里要注意 {} 括起来的规则块

    #、嵌套规则

    Sass 可以让你像俄罗斯套娃那样在规则块中嵌套规则块。它在输出 CSS 时会帮你把这些嵌套规则处理好,避免你的重复书写。嵌套规则的优势在于只避免重复书写样式,且使样式可读性更高。

    这里还有一个特殊结构符:&,用来标识嵌套规则中的父选择器

    群体选择器的嵌套:

    处理这种群组选择器规则嵌套上的强大能力,正式 Sass 减少重复敲写方面的贡献之一。尤其是嵌套级别达到两层甚至三层以上时,与普通的 CSS 编写方式相比,只写一遍群组选择器大大减少了工作量。

    嵌套属性:

    #、导入 Sass 文件

    CSS 有一个特别不常用的特性,即 @import 规则,它允许在一个 CSS 文件中导入其他 CSS 文件。然而,后果是只有执行到 @import 时,浏览器才会去下载其他 CSS 文件,这导致页面加载起来特别慢。

    Sass 也有一个 @import 规则,但不同的是,Sass 的 @import 规则在生成 CSS 文件时,就把相关文件导入进来。这意味着所有相关的样式被归纳到了同一个 CSS 文件中,而无需发起额外的下载请求。另外,所有在被导入文件中定义的变量和混合器,均可在导入文件中使用。

    使用 Sass 部分文件。当通过 @import 把 Sass 样式分散到多个文件时,通常指向生成少数几个 CSS 文件。那些专门为 @import 命令而编写的 Sass 文件,并不需要生成对应的独立的 CSS 文件,这样的 Sass 文件称为局部文件,对称,Sass 有一个特殊的约定来命名这些文件,即:文件名以下划线开头。这样,Sass 就不会在编译时单独编译这个文件输出 CSS,而只把这个文件用作导入。当 @import 一个局部文件时,还可以不写文件的全名,即圣罗文件名开头的下划线。局部文件可以被多个不同的文件引用,当一些样式需要在多个页面甚至多个项目中使用时,这非常有用。

    #、静默注释

    Sass 中提供了另一种不同于 CSS 标准注释格式 /*...*/  的注释语法,即静默注释,其内容不会出现在生成的 CSS 文件中。它以 // 开头,注释内容直到行末。

    当注释出现在原生 CSS 不允许的地方,Sass 将不知道如何将其生成到对应 CSS 文件中的响应位置,于是这些注释被抹掉:

    #、混合器

    当样式变得越来越复杂,需要大段大段的重用样式代码,这时使用混合器来实现大段样式的重用。

    使用 @mixin 标识符定义。使用这个标识符给一大段样式赋予一个名字,这样就可以轻易的通过引用这个名字重用这段样式。

    混合器不一定总得生成相同样式。可以通过在 @include 混合器时给混合器传参,来指定混合器生成的精确样式。

    这种方式跟 JS 的 function 很像:

    #、选择器继承

    使用 Sass 的时候,最后一个减少重复的主要特性就是选择器继承。基于 Nicole Sullivan 面向对象的 CSS 理念,选择器继承是说一个选择器可以继承另一个选择器定义的所有样式。这个通过 @extend 语法实现。

    #、Sass 占位符选择器

    占位符选择器是以 % 作为开始符的选择器。它自身不会出现在编译后的 CSS 文件中,只会出现在 @extend 了它的那些选择器中。

    详见:https://www.cnblogs.com/7z7chn/p/5393455.html

    #、Sass 的运算符

    赋值运算符:在 Sass 中,冒号(:)元素安抚用于定义变量

    算术运算符:用于执行算术运算的一些标准数学运算符。

    字符串运算符:加法还可用于连接字符串

    平等算子:条件语句中使用等号运算符。这些运算符用于测试两个值是否相同,并返回布尔值

    比较运算符:类似于相等运算符,但它们仅用于比较数字

    逻辑运算符:用于测试条件表达式中的多个条件

    颜色运算符:Sass 允许使用颜色分量和算术运算,任何颜色表达式都返回 SassScript 颜色值

    列表运算符:使用逗号或空格分隔的一系列值。见:https://www.runoob.com/sass/sass-list-func.html

    #、插值?

    它使用 #{} 语法提供选择器和属性名称中的 SassScript 变量。可以在花括号中指定变量或属性名称

    #、指令

    @debug 指令用于检测错误,并向标准错误输出流显示 Sass 脚本表达式值

    @extend 指令用于将一组 CSS 属性从一个选择器共享到 另一个 选择器。这是 Sass 非常重要和有用的功能。

    它允许彼此共享一组属性。它是你的代码更少,并方便你重复重写

    @media 指令用于将样式规则设置为不同的媒体类型。它支持扩展 @media 规则。该指令可以嵌套在选择器 Sass 中,但是主要影响显示在样式表的顶层

    @at-root 伪指令是嵌套规则的集合,这些规则用于在文档根目录处设置样式

    #、Sass 系统要求:

  • 相关阅读:
    如何在Window上使用Git
    【坑】log4j-over-slf4j.jar AND slf4j-log4j12.jar的冲突问题
    如何查看hadoop与hbase的版本匹配关系
    为什么要用Message Queue
    Storm+kafka的HelloWorld初体验
    KafkaOffsetMonitor使用方法
    Linux虚拟机配置本地yum源
    andorid CmakeLists
    python tkinter Treeview 事件绑定
    python我的tkinter学习,玩玩
  • 原文地址:https://www.cnblogs.com/guofan/p/15977485.html
Copyright © 2020-2023  润新知