sass基础语法

Sass(Syntactically Awesome Style Sheets)是一种 CSS 预处理器,提供了比原生 CSS 更强大、更灵活的语法功能。它有两种语法格式:

  • Sass(缩进语法,.sass 文件)
  • SCSS(CSS-like 语法,.scss 文件),推荐使用 SCSS,因其更接近标准 CSS。

一、Sass/SCSS 基础语法

1. 变量(Variables)

$primary-color: #3498db;

body {
  background-color: $primary-color;
}

2. 嵌套(Nesting)

nav {
  ul {
    list-style: none;
  }

  li {
    display: inline-block;
  }

  a {
    text-decoration: none;
    color: $primary-color;
  }
}

编译为 CSS:

nav ul {
  list-style: none;
}
nav li {
  display: inline-block;
}
nav a {
  text-decoration: none;
  color: #3498db;
}

3. 父选择器 &

a {
  color: blue;

  &:hover {
    color: red;
  }
}

编译为 CSS:

a {
  color: blue;
}
a:hover {
  color: red;
}

4. 混合宏(Mixins)

用于定义可复用的样式块:

@mixin border-radius($radius) {
  -webkit-border-radius: $radius;
     -moz-border-radius: $radius;
      -ms-border-radius: $radius;
          border-radius: $radius;
}

.box {
  @include border-radius(10px);
}

5. 函数(Functions)

可以自定义函数并返回值:

@function calculate-rem($size) {
  $rem-size: $size / 16px;
  @return #{$rem-size}rem;
}

body {
  font-size: calculate-rem(14px);
}

6. 导入(Import)

将多个 Sass 文件合并为一个 CSS 文件:

// _variables.scss
$primary-color: #3498db;

// main.scss
@import 'variables';

body {
  background-color: $primary-color;
}

⚠️ 注意:Sass 的 @import 已被弃用,建议使用 @use 和模块化方式(见下文)。


7. 模块化(@use / @forward

// _colors.scss
$primary: #3498db;
$secondary: #e74c3c;

// main.scss
@use 'colors';

body {
  background: colors.$primary;
}

8. 继承(Extend)

通过 @extend 继承其他选择器的样式:

.message {
  padding: 10px;
  border: 1px solid #ccc;
}

.error {
  @extend .message;
  color: red;
}

9. 条件语句与循环

条件判断(if/else)
@mixin theme-color($theme) {
  @if $theme == dark {
    background-color: #333;
    color: #fff;
  } @else {
    background-color: #fff;
    color: #333;
  }
}

.container {
  @include theme-color(dark);
}
循环(for / each)
@for $i from 1 through 5 {
  .col-#{$i} {
    width: 20% * $i;
  }
}

// 或者
$list: red, blue, green;
@each $color in $list {
  .btn-#{$color} {
    background: $color;
  }
}

二、Sass 编译方式

你可以使用以下工具将 .scss 文件编译为 .css 文件:

  • Dart Sass(官方推荐)
  • Node.js + sass-loader(配合 Webpack)
  • VSCode 插件如 Live Sass Compiler

安装 Dart Sass:

npm install sass --save-dev

编译命令:

npx sass src/styles.scss dist/styles.css

三、使用建议

技巧说明
使用 _filename.scss下划线开头表示 partial 文件,不会单独编译
模块化组织结构base/, components/, layout/, themes/ 等目录
使用占位符 %避免无用类输出,只用于 @extend
变量命名规范$spacing-sm, $font-title
使用 !default 设置默认值$color: red !default;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香蕉可乐荷包蛋

努力写有用的code

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值