Skip to content

Sass 基础 ​

预处理 ​

单靠 CSS 也能写出有趣的样式,但样式表变得越来越庞大、复杂,也更难维护。这时预处理器就能派上用场。Sass 拥有 CSS 目前还没有的功能,比如嵌套、混合宏、继承等各种实用功能,能帮助你编写健壮、易维护的 CSS。

一旦你开始使用 Sass,它会将你预处理的 Sass 文件保存为普通的 CSS 文件,供网站使用。

最直接的方式是在终端中操作。一旦 Sass 安装完成,你可以使用 sass 命令将 Sass 编译为 CSS。你需要告诉 Sass 要构建哪个文件,以及 CSS 输出到哪里。例如,在终端中运行:

sh
sass input.scss output.css

这会将一个 Sass 文件 input.scss 编译为 output.css。

你也可以使用 --watch 标志来监听单个文件或整个目录。watch 标志会告诉 Sass 监听你的源文件的更改,并在每次保存 Sass 时重新编译 CSS。如果你想监听 input.scss 文件,而不是手动构建,只需在命令中添加 watch 标志,如下所示:

sh
sass --watch input.scss output.css

你还可以通过使用文件夹路径作为输入和输出,并用冒号分隔它们,来监听并输出到目录。例如:

sh
sass --watch app/sass:public/stylesheets

Sass 会监听 app/sass 文件夹中的所有文件变化,并将 CSS 编译到 public/stylesheets 文件夹中。

NOTE

Sass 有两种语法!.scss 语法最常用,它是 CSS 的超集,这意味着所有有效的 CSS 也是有效的 SCSS。而 .sass 缩进语法则较为少见:它使用缩进代替大括号来嵌套语句,使用换行而非分号来分隔语句。我们提供的所有示例都有这两种语法版本。

嵌套 ​

在编写 HTML 时,你可能注意到它具有清晰的嵌套结构和视觉层级。而 CSS 本身则没有这种结构。

Sass 允许你以符合 HTML 视觉层级的方式嵌套 CSS 选择器。需要注意的是,过度嵌套的规则会导致选择器过于复杂,难以维护,通常被认为是糟糕的实践。

牢记这一点,下面是一个网站导航常见样式的示例:

scss
nav {
  ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  li { display: inline-block; }

  a {
    display: block;
    padding: 6px 12px;
    text-decoration: none;
  }
}
css
nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
nav li {
  display: inline-block;
}
nav a {
  display: block;
  padding: 6px 12px;
  text-decoration: none;
}

你会注意到,ul、li 和 a 选择器是嵌套在 nav 选择器中的。这是一种很好的方式来组织你的 CSS,使其更具可读性。