sass
一、sass简介
sass 是css的预编译语言
- css 写法
div{ border:1px #f00 solid;}
div p{ font-size:20px;}
sass的写法
简单的写法和 css 是一样的
div {
border:1px #f00 solid;
p {
font-size:20px;
}
}
less的写法
通过换行符和空格来表达层级关系
div
border:1px #f00 solid;
p
font-size:20px;
Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库(如 Compass)有助于更好地组织管理样式文件,以及更高效地开发项目。
使用sass ,可以使用两种语法格式,语法格式不同,文件后缀名不同,具有 scss和sass 两种不同的后缀名
- scss:支持css3语法格式,所有的css3语法都通用
- sass:被称为缩进格式 (Indented Sass) 通常简称 “Sass”,是一种简化格式。它使用 “缩进” 代替 “花括号” 表示属性属于某个选择器,用 “换行” 代替 “分号” 分隔属性。
二、sass变量
在vscode中安装 插件
- easy sass
- easy less
主要是使用的是 easy sass.通过插件编译后结果是会自动生成 一个css文件和一个 min.css压缩文件
1.声明变量
通过关键字 $ 声明变量,$name 此时的name就是变量名
2.变量名的命名方式:
以数字,字母、下划线 _ 、短横线- 组合的字符作为变量名
注意,只能以 字母和下划线 _ 开头
通过 #{$name} 插值语句可以在选择器或属性名中使用变量
直接在属性中使用变量,sass 会报错
如 marin-$left:10px;报错
margin-#{$left}:10px; 正确写法
3.全局作用域和局部作用域
全局作用域范围是整个 sass文件,局部作用域范围是某一个选择器内部
4.全局变量和局部变量
- 全局变量:声明在全局作用域内的变量,可以在任何地方使用该变量
- 局部变量:声明在局部作用域内的变脸和,只能在声明的地方使用
sass的嵌套规则
.wp{
background:#f60;
h2{ color:#333; }
p{ color:#333; }
}
以上嵌套规则最终会被编译为后代选择器的形式,因此嵌套不宜过深
属性嵌套:凡是可以进行拆分的属性,都可以使用属性嵌套,注意属性名后面的冒号(:)要和{} 有空格分开
border: {
width: 2px;
style:solid;
color:#ff0 ;
}
父选择器标识符 &, &表示当前的父选择器
四、混合器
混合器作用,是把相同的css样式提取出来,单独设置成一个模块,使用方便
使用混合器 @mixin
语法 @mixin name{
css 样式代码
}
其中,name 就是混合器的名字,他是一个变量,命名规则同 变量的命名规则
使用混合器@include name;
通过@include把混合器的名字引入到使用混合器的位置
复杂的混合器
混合器也可以接受参数
-
定义混合器
@mixin name(arg1,arg2,arg3...){ css 样式代码 }
()中的arg列表,就是混合器的参数,由于他们只是形式上的参数,不具备任何意思,因此称为 形参列表
注意,参数的本质也是变量,因此需要$开头
- 使用混合器
@inclue name(val1,val2,val3…)
val列表,是实际的数据,因此称为实参列表
形参和实参是一一对应的关系