指南

SCSS 入门语法基础

学会 SCSS 的嵌套写法、变量使用、注释方法和编译方式,轻松写出整洁高效的 CSS。

🎯 引言

如果你刚开始接触前端,听说过 SCSS 但不太明白它怎么用,这篇文章正适合你。通过学习 SCSS 的基础语法、变量、嵌套和注释,还有如何将 SCSS 编译成浏览器能识别的 CSS,你会发现写样式变得更加简单和有趣。SCSS 不仅让代码更清晰,还能帮你快速提升开发效率!


🌿 嵌套写法 —— 让 CSS 更有层次感

传统的 CSS 写法,选择器一个个写,层级关系不明显,代码有时显得杂乱无章。SCSS 的嵌套写法就像给 CSS 加上了“目录结构”,代码看起来更整洁,也更容易维护。

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

        li {
            display: inline-block;

            a {
                display: block;
                padding: 6px 12px;
                text-decoration: none;
                color: blue;

                &:hover {
                    color: red;
                }
            }
        }
    }
}

这个例子展示了导航条的嵌套写法,nav 里面包含 ulul 里面包含 lili 里面包含 a,伪类 :hover& 符号引用父选择器,写法简洁又直观。

嵌套写法中的伪类 👻

伪类如 :hover:active:focus 在 SCSS 中通过 & 来表示当前父选择器,避免了重复写选择器名。

button {
    background-color: green;
    color: white;

    &:hover {
        background-color: darkgreen;
    }

    &:active {
        background-color: limegreen;
    }
}

💡 变量声明与使用 —— 减少重复,方便维护

CSS 中颜色、字体大小、间距常常复用,SCSS 用变量帮你管理。改动时只需改变量值,所有引用自动更新,超方便。

$primary-color: #3498db;
$padding-base: 16px;
$font-stack: 'Helvetica Neue', Helvetica, Arial, sans-serif;

body {
    font-family: $font-stack;
    color: $primary-color;
    padding: $padding-base;
}

button {
    background-color: $primary-color;
    padding: $padding-base / 2;
    border: none;
    border-radius: 4px;
    color: white;
}

变量名前必须以 $ 开头,变量名建议用有意义的英文单词,方便阅读和维护。

变量可以是颜色、尺寸、字符串甚至计算的结果,帮你写出灵活的样式。

📝 注释:单行 vs 多行

代码注释很重要,SCSS 支持两种注释方式:

// 这是单行注释,编译后不会出现在 CSS 中

/*
这是多行注释
可以写多行说明
编译后默认会保留在生成的 CSS 文件中
*/
如果你不想让注释出现在最后的 CSS 文件里,请使用单行注释 //。多行注释会默认保留,影响文件大小。

🚀 编译 SCSS 的方式

SCSS 是一种预处理语言,浏览器并不能直接识别,所以我们需要编译成标准 CSS。

1. Koala(图形界面工具)

Koala 是一款跨平台的 GUI 编译器,适合前端初学者或不熟悉命令行的开发者。

下载地址:https://koala-app.com

2. Dart-sass

这是 Sass 官方团队维护的版本,支持最新语法,是当前唯一被官方积极维护的 Sass 实现。

npm install -g sass
sass input.scss output.css

3. Sass 官方在线 Playground

Sass 提供了一个强大的在线编译器,适合快速尝试代码、测试语法或演示功能。能够实时将 Scss 样式编译成 CSS。

访问地址:https://sass-lang.com/playground/

4. Webpack 编译

在实际开发中,推荐使用 Webpack 等构建工具集成 SCSS 编译流程。这样可以自动处理样式依赖、热更新、压缩等功能,更适合中大型项目。


🧾 小节总结

  • SCSS 的嵌套写法让样式层级关系更明显,代码更整洁,伪类和媒体查询都能轻松嵌套。
  • 变量声明极大方便了样式的统一管理,改动快捷,减少重复。
  • 注释有单行和多行两种,单行注释不会编译到 CSS 里,多行注释默认会被保留。
  • 编译 SCSS 的方式多样,推荐使用 Dart-sass,线上也有方便的在线编译器可用。

❓ 知识问答(Q&A)

Q:SCSS 中如何嵌套伪类?

A:使用 & 符号表示父选择器,然后跟伪类名称,比如 &:hover

Q:SCSS 变量如何声明?

A:通过 $变量名: 值; 声明,变量名前必须加 $

Q:多行注释会不会出现在最终的 CSS 文件中?

A:默认会保留,如果不想保留,应该使用单行注释 //


🎉 恭喜你已经掌握 SCSS 的嵌套写法、变量使用、注释方法和编译技巧啦!