讲师中心 微信公众号
AI工具推荐 视频效率加速

CSS预处理器Sass入门_变量、嵌套与混合宏的基础用法

落芳吖_2376

落芳吖_2376

发布时间:2026-02-15 08:39:23

|

542人浏览过

|

来源于php中文网

原创

Sass变量必须以$开头,如$primary-color: #2c3e50;嵌套不宜超3层;@mixin不支持返回值,需用@function实现计算;@import已废弃,须改用@use模块系统。

css预处理器sass入门_变量、嵌套与混合宏的基础用法

变量声明必须用 $ 开头,否则编译直接报错

Sass 里变量不是写 color = #333,也不是 let color = #333,而是强制要求以 $ 开头。漏写或写成 @、: 都会触发 Invalid CSS after "$": expected identifier 这类错误。

  • $primary-color: #2c3e50; ✅ 正确
  • primary-color: #2c3e50; ❌ 编译失败,当成普通 CSS 属性处理
  • @primary-color: #2c3e50; ❌ 被识别为指令语法错误

变量作用域也得注意:在嵌套规则里重定义同名变量,默认是局部覆盖;想改全局变量得加 !global 标志,比如 $font-size: 16px !global;。

嵌套规则不能无限套,超过 3 层就该拆了

嵌套写法看着爽,.nav { ul { li { a { &:hover { ... } } } } } 但实际生成的 CSS 选择器会变成 .nav ul li a:hover,层级越深,CSS 特异性越强,后期覆盖成本越高,还容易和 BEM 类名冲突。

  • 嵌套只适合表达明确父子/子孙关系,比如表单控件内部状态
  • 遇到 &.is-active 或 &:focus-within 这类伪类时,别为了“保持嵌套”硬塞进深层结构里
  • 编译后 CSS 文件体积会随嵌套深度非线性增长,尤其配合 @media 嵌套时更明显

真要组织复杂 UI,优先用 @use 拆模块,而不是靠嵌套压代码行数。

立即学习“前端免费学习笔记(深入)”;

Miller CSV TSV JSON 数据处理器
Miller CSV TSV JSON 数据处理器

Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。

下载

混合宏(@mixin)别当函数用,不支持返回值

@mixin 是代码块复用机制,不是函数——它不能 @return,也不能把计算结果赋给变量。常见误用是想用它动态算出 margin 值然后返回,结果只能干瞪眼。

  • 正确用途:封装带参数的样式组合,比如 @mixin flex-center { display: flex; justify-content: center; align-items: center; }
  • 传参支持默认值:@mixin pad($size: 1rem) { padding: $size; },但参数只能是 Sass 数据类型(数字、颜色、列表等),不能是选择器字符串
  • 如果需要“计算+返回”,得用 @function,比如 @function px-to-rem($px) { @return $px / 16px * 1rem; }

混入里调用另一个混入可以,但别形成递归调用,Sass 不做栈深检查,编译时直接卡死或爆内存。

@import 已废弃,@use 才是现代 Sass 模块系统

还在用 @import "variables"?它会把整个文件内容无条件注入当前作用域,变量、混入全变成全局的,命名冲突风险极高。Sass 从 4.0 起就标记为废弃,Dart Sass 2.0+ 已完全移除支持。

  • 改用 @use "variables" as var;,之后必须通过 var.$primary-color 访问,作用域清晰
  • @use 同一文件只加载一次,不管你在多少个地方写了它,避免重复编译
  • 如果旧项目迁移,注意 @import 中的 url() 路径是相对 @import 所在文件的,而 @use 的路径是相对项目根目录(需配 load-path)

最易被忽略的一点:用了 @use 就不能再用 @import 混用,否则 Dart Sass 直接拒绝编译——不是警告,是报错停住。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
Sass和less的区别
Sass和less的区别

Sass和less的区别有语法差异、变量和混合器的定义方式、导入方式、运算符的支持、扩展性等。本专题为大家提供Sass和less相关的文章、下载、课程内容,供大家免费下载体验。

3047

2023.10.12

数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3271

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

554

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

562

2026.02.12

全局变量怎么定义
全局变量怎么定义

本专题整合了全局变量相关内容,阅读专题下面的文章了解更多详细内容。

4965

2025.09.18

python 全局变量
python 全局变量

本专题整合了python中全局变量定义相关教程,阅读专题下面的文章了解更多详细内容。

2090

2025.09.18

c++ 全局变量
c++ 全局变量

本专题整合了c++全局变量的使用、定义、作用域等等内容,阅读专题下面的文章了解更多详细内容。

199

2026.03.17

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1838

2023.08.03

Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

0

2026.11.02

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn