Sass/SCSS #

什么是 Sass? #

Sass(Syntactically Awesome Style Sheets)是最成熟、稳定、强大的 CSS 预处理器。它为 CSS 添加了变量、嵌套、混合、函数等强大功能,让 CSS 编写更加高效和可维护。

Sass vs SCSS #

Sass 有两种语法格式:

特性 Sass SCSS
文件扩展名 .sass .scss
语法风格 缩进式,无大括号和分号 CSS 兼容,使用大括号和分号
学习曲线 较低 更接近 CSS,易于上手
兼容性 不兼容原生 CSS 完全兼容 CSS 语法
sass
// Sass 语法
.container
  width: 100%
  padding: 20px
  .item
    color: red
scss
// SCSS 语法
.container {
  width: 100%;
  padding: 20px;
  .item {
    color: red;
  }
}

本指南主要使用 SCSS 语法,因为它更接近 CSS,学习成本更低。

文档结构 #

本指南按以下结构组织:

1. 基础入门 #

主题 描述 文档链接
Sass 简介 了解 Sass 的历史、特点和优势 intro.md
安装配置 Sass 的安装和环境配置 installation.md
语法基础 SCSS 基础语法和文件结构 syntax.md

2. 核心概念 #

主题 描述 文档链接
变量 变量的定义和使用 variables.md
嵌套规则 选择器和属性的嵌套 nesting.md
模块化 使用 @import 和 @use 组织代码 partials.md

3. 进阶特性 #

主题 描述 文档链接
混合宏 @mixin 和 @include 的使用 mixins.md
自定义函数 创建和使用自定义函数 functions.md
控制指令 @if、@for、@each、@while control-directives.md

4. 高级特性 #

主题 描述 文档链接
运算符 数学运算、比较运算、逻辑运算 operators.md
数据类型 数字、字符串、颜色、列表、映射 data-types.md
映射(Maps) 键值对数据结构的使用 maps.md

5. 专家级 #

主题 描述 文档链接
继承扩展 @extend 指令的使用 extend.md
模块系统 @use、@forward 模块化开发 modules.md
最佳实践 Sass 项目最佳实践 best-practices.md
项目结构 大型项目的文件组织 project-structure.md

学习路径 #

入门阶段(Sass 新手) #

  1. 了解 CSS 预处理器的基本概念
  2. 安装和配置 Sass 环境
  3. 学习 SCSS 基础语法
  4. 掌握变量的使用
  5. 理解嵌套规则

进阶阶段(Sass 熟练) #

  1. 掌握模块化开发方式
  2. 学习混合宏(Mixin)的使用
  3. 创建自定义函数
  4. 使用控制指令
  5. 理解运算符和数据类型

高级阶段(Sass 专家) #

  1. 深入理解 @extend 继承机制
  2. 掌握模块系统(@use、@forward)
  3. 学习映射(Maps)的高级用法
  4. 创建可复用的 Sass 库
  5. 性能优化和最佳实践

大师阶段(Sass 大师) #

  1. 构建企业级 Sass 架构
  2. 设计可维护的样式系统
  3. 开发通用 Sass 工具库
  4. 参与开源项目贡献
  5. 持续关注 Sass 最新发展

为什么学习 Sass? #

提高开发效率 #

scss
// 使用变量
$primary-color: #3498db;

.button {
  background-color: $primary-color;
  
  &:hover {
    background-color: darken($primary-color, 10%);
  }
}

增强代码可维护性 #

scss
// 使用混合宏
@mixin flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

.container {
  @include flex-center;
}

实现模块化开发 #

scss
// _variables.scss
$colors: (
  primary: #3498db,
  secondary: #2ecc71,
  danger: #e74c3c
);

// _buttons.scss
@use 'variables' as *;

.btn-primary {
  background-color: map-get($colors, primary);
}

Sass vs 其他预处理器 #

特性 Sass Less Stylus
语言 Ruby/Dart JavaScript JavaScript
语法 SCSS/Sass CSS 兼容 灵活语法
变量 $var @var var$var
混合宏 @mixin .class function
社区 最大 较大 较小
学习曲线 中等 较低 较低

资源推荐 #

贡献指南 #

欢迎对本指南进行贡献!如果你发现错误或有改进建议,请联系我们。

更新日志 #

  • 2026-03-28:创建初始版本,包含完整的 Sass/SCSS 学习大纲

继续探索本指南,逐步掌握 Sass/SCSS 技术,从新手成长为 CSS 预处理器专家!

最后更新:2026-03-28