简述
Sass/Scss和Less是CSS预处理器,我们可以将它们看作为CSS的高级语法
Sass/Scss在CSS语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能Less在CSS语法的基础上增加了变量、Mixin、函数等特性
Sass 和 Scss 的区别
Sass是以严格的缩进式语法规则来书写,使用缩进代替花括号后面不需加分号Scss是在Sass语法基础上兼容CSS的写法
Sass 语法
// 定义变量
$primary-color: #FF0000
div
width: 30%
color: $primary-color
Scss 语法
// 定义变量
$primary-color: #FF0000;
div {
width: 30%;
color: $primary-color;
}
Sass/Scss 和 Less 的区别
编译环境
Sass的安装需要Ruby环境,是在服务端处理的Less是引入less.js来处理Less代码后输出css到浏览器,Less可以运行在Node或浏览器端
部分语法(变量符、条件语句)
- 变量
Less是@,而Sass是$ Sass支持使用if条件和for循环语句,Lass不支持
Sass 语法
// 定义变量
$primary-color: #FF0000;
div {
@if 1 + 1 == 2 { border: 1px solid $primary-color; }
@if 5 < 3 { border: 2px dotted $primary-color; }
@if null { border: 3px double $primary-color; }
}
编译后
div {
border: 1px solid $primary-color;
}
Less 语法
@nice-blue: #5B83AD;
@light-blue: @nice-blue + #111;
#header {
color: @light-blue;
}
编译后
#header {
color: #6c94be;
}
引用外部 CSS 文件
Scss@import 引用的外部文件如果不想编译时多生成同名的.css文件,命名必须以 _ 开头, 文件名如果以下划线 _ 开头的话,Sass会认为该文件是一个引用文件,不会将其编译为同名css文件
输出设置和工具库
Sass提供 4 中输出选项:nested,compact,compressed和expanded, 而Less没有输出设置Sass有工具库Compass,Less有UI组件库Bootstrap
参考