Sass 入门使用指南
大家好,我是小鑫同学。一位从事过 Android 开发、混合开发,现在长期从事前端开发的编程爱好者,我觉得在编程之路上最重要的是知识的分享,所谓三人行必有我师。所以我开始在社区持续输出我所了解到、学习到、工作中遇到的各种编程知识,欢迎有想法、有同感的伙伴加我fe-xiaoxin微信交流~
快速使用
在 VSCode 中安装 Live Sass Compiler 插件
Watch Sass 从状态栏单击以打开实时编译,然后 Stop Watching Sass 从状态栏单击以打开实时编译。
在 html 页面引入动态生成的.css 文件
Sass 使用指南
内容摘录自: www.sass.hk/
1. 使用变量
声明/引用/命名, 重复定义的变量按最后一次定义为准
声明规则:
$key:value
引用规则:
$key:value
命名规则:
kebab-case
(建议)
2. 嵌套规则
&标识符: 在需要避免 sass 默认解套后空格连接父子选择器导致样式不生效的的情况下使用 &处理,如遇到伪类选择器:hover 等。
群组选择器的嵌套: 多个子选择器拥有公共父选择器,并且需要给子选择器设置通用属性的情况。
子组合选择器和同层选择器: > 、+ 和 ~
子组合选择器>,选择一个元素的直接子元素
同层相邻组合选择器+,选择 header 元素后紧跟的 p 元素
同层全体组合选择器~,选择所有跟在 article 后的同层 article 元素,不管它们之间隔了多少其他元素
嵌套属性
3. 导入 SASS 文件
css 中的
@import
执行到后下载 css 文件,导致页面加载慢sass 中的
@import
在生成 css 的时候导入,无法额外下载sass 导入可以省略后缀
导入 sass 部分文件
通常在编写的 base-style 的文件是无需主动编译为 css 文件的,在其他 sass 文件中使用
@import
导入后生效即可。通过将文件命名为'_'开头即不会在编译时生成单独文件
如需导入的文件为:
themes/_night-sky.scss,
那么导入的时候可以写@import "themes/night-sky";
默认变量值
多次定义相同变量会造成值的覆盖
可以通过使用
!default
进行标记
嵌套导入
直接导入到需要使用的样式选择器中
原生 css 导入
勿用 sass 的 @
import
导入原始 css 文件可将 css 文件后缀修改为 scss 后缀
5. 混合@mixin
何时使用: 用于展示性样式的重用
定义:
使用:
混合器中 css 规则
内部除了包含属性也可包含 css 规则
给混合器传参
默认参数值
6. 继承@extend
何时使用: 类名用于语义化样式的重用
定义
使用
Sass 补充
数据类型:
数字: 1, 2, 13, 10px
字符串: "foo", 'bar', baz
颜色: blue, #04a3f9, rgba(255,0,0,0.5)
布尔型: true, false
空值: null
数组,用空格或逗号作分隔符: 1.5em 1em 0 2em, Helvetica, Arial, sans-serif
maps: (key1: value1, key2: value2)
运算:
所有数据类型均支持相等运算
==
或!=
,此外,每种数据类型也有其各自支持的运算方式。
数字类型运算:
+, -, *, /(除后取整), %(除后取余)
数值运算,<, >, <=, >=
关系运算颜色值运算: 叠加符 '+'
字符串运算: 连接符 '+'
布尔运算: and, or, not
使用函数
SassScript 定义的函数
关键词参数
插值语句 #{}
控制语句
@if
@for
@each: 格式是
$var in <list>
@while
输出格式
nested
Nested (嵌套)样式是 Sass 默认的输出格式,能够清晰反映 CSS 与 HTML 的结构关系。选择器与属性等单独占用一行,缩进量与 Sass 文件中一致,每行的缩进量反映了其在嵌套规则内的层数。当阅读大型 CSS 文件时,这种样式可以很容易地分析文件的主要结构。
expand/体积较大
Expanded 输出更像是手写的样式,选择器、属性等各占用一行,属性根据选择器缩进,而选择器不做任何缩进。
compact/体积较小
Compact 输出方式比起上面两种占用的空间更少,每条 CSS 规则只占一行,包含其下的所有属性。嵌套过的选择器在输出时没有空行,不嵌套的选择器会输出空白行作为分隔符。
compressor/压缩的
Compressed 输出方式删除所有无意义的空格、空白行、以及注释,力求将文件体积压缩到最小,同时也会做出其他调整,比如会自动替换占用空间最小的颜色表达方式。
版权声明: 本文为 InfoQ 作者【小鑫同学】的原创文章。
原文链接:【http://xie.infoq.cn/article/fdf2e30dc4524c63a6cf8bdd1】。文章转载请联系作者。
评论