CSS、SCSS 和 SASS 的语法差异

CSS、SCSS 和 SASS 的语法差异

CSS (Cascading Style Sheets)

  • 标准样式表语言,所有浏览器原生支持
  • 语法特点 :
    • 使用大括号 {} 包裹规则
    • 使用分号 ; 结束声明
    • 简单的选择器-属性-值结构
css 复制代码
.container {
  width: 100%;
  margin: 0 auto;
}

SCSS (Sassy CSS)

  • CSS的超集,所有合法CSS都是合法SCSS
  • 语法特点 :
    • 保留CSS的大括号和分号语法
    • 添加了变量、嵌套、混合等高级功能
    • 文件扩展名为.scss
scss 复制代码
$primary-color: #333;

.container {
  width: 100%;
  margin: 0 auto;
  
  p {
    color: $primary-color;
  }
}

SASS (Syntactically Awesome Style Sheets)

  • 缩进语法(较老的语法形式)
  • 语法特点 :
    • 不使用大括号和分号

    • 使用缩进和换行来定义结构

    • 文件扩展名为 .sass

      $primary-color: #333

      .container
      width: 100%
      margin: 0 auto

      p
      color: $primary-color

主要功能差异

特性 CSS SCSS SASS
变量 ❌ ✅ ✅
嵌套规则 ❌ ✅ ✅
混合(Mixins) ❌ ✅ ✅
继承 ❌ ✅ ✅
运算 ❌ ✅ ✅
大括号语法 ✅ ✅ ❌
分号 ✅ ✅ ❌
缩进语法 ❌ ❌ ✅

SASS & SCSS

  1. SASS (缩进语法)

    • 受 Python/Haml 影响
    • 优点:更简洁,减少标点符号
    • 缺点:与 CSS 不兼容,学习曲线较陡
  2. SCSS

    • 设计为 CSS 的超集
    • 优点:
      • 任何 CSS 文件都可直接重命名为 .scss
      • 对前端开发者更友好
      • 保留了 CSS 的直观性

现代使用情况

  • SCSS 成为标准:大多数项目使用 .scss

  • SASS 语法仍有少量使用:主要在 Ruby 社区

  • CSS 持续进化:已引入部分 SASS 特性(如 CSS 变量)

相关推荐
程序员大阳1 天前
HTML+CSS+JS对话式实战(9)-项目总结与问题分析
javascript·css·html·实战·项目总结
程序员大阳1 天前
HTML+CSS+JS对话式实战(6)-学生端查看活动功能开发
javascript·css·html·模块·查看学生
程序员大阳4 天前
HTML+CSS+JS对话式实战(3)-活动管理页实现查询、新增、删除API后端接口
javascript·css·html·实战·删除·查询·新增
ZhengEnCi5 天前
12 种高级 UI 交互效果及对应 AI 提示词:从按压回弹到底部抽屉的物理感教学
前端·css·交互设计
ZhengEnCi5 天前
为什么苹果的圆角更高级:连续曲率圆角 Squircle 从超椭圆到 CSS 实现的完全讲解
css·设计
用户3434612783206 天前
用户认证系统在高并发下的幂等性与限流策略踩坑实录
css
啾咪orJIUMI7 天前
Vue 3 + SCSS 实现全屏系统门户:五栏展开与灯光联动
css
程序员大阳7 天前
HTML+CSS+JS对话式实战(1)-开篇:认识我们要做的社团活动发布平台
javascript·css·html·实战·系统·平台·社团活动发布
志尊宝8 天前
AI原生前端开发(043):AI辅助的样式生成(Tailwind CSS)
前端·css·ai-native
java1234_小锋9 天前
【技术专题】CSS3 网页技术 - CSS3 布局进阶
前端·css·css3