Skip to content

SASS

变量

scss

scss
$font-stack: Helvetica, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
}

css

css
body {
  font: 100% Helvetica, sans-serif;
  color: #333;
}

嵌套

scss

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

css

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

部分样式文件

_ 开头命名的 scss 文件,它不会被转换生成 css 文件,而是作为其他样式文件的一部分被使用

scss
// _base.scss
$font-stack: Helvetica, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
}

模块化

scss

scss
// _base.scss
$font-stack: Helvetica, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
}

// styles.scss
@use 'base'; // 这个路径不知道是什么

.inverse {
  background-color: base.$primary-color;
  color: white;
}

css

css
body {
  font: 100% Helvetica, sans-serif;
  color: #333;
}

.inverse {
  background-color: #333;
  color: white;
}

混入 Mixins

scss

scss
// 创建 mixin,命名为 theme,传入变量 $theme
@mixin theme($theme: darkgray) {
  background: $theme;
  box-shadow: 0 0 1px rgba($theme, .25);
  color: #fff;
}

.info {
  // 使用 @include 标记 mixin 的 css 声明
  @include theme;
}
.alert {
  @include theme($theme: darkred); // 可以传参数
}
.success {
  @include theme($theme: darkgreen);
}

css

css
.info {
  background: darkgray;
  box-shadow: 0 0 1px rgba(169, 169, 169, 0.25);
  color: #fff;
}

.alert {
  background: darkred;
  box-shadow: 0 0 1px rgba(139, 0, 0, 0.25);
  color: #fff;
}

.success {
  background: darkgreen;
  box-shadow: 0 0 1px rgba(0, 100, 0, 0.25);
  color: #fff;
}

继承 extend

scss

scss
%message-shared {
  border: 1px solid #ccc;
  padding: 10px;
  color: #333;
}

.message {
  @extend %message-shared;
}

.success {
  @extend %message-shared;
  border-color: green;
}

.error {
  @extend %message-shared;
  border-color: red;
}

.warning {
  @extend %message-shared;
  border-color: yellow;
}

css

css
.warning, .error, .success, .message {
  border: 1px solid #ccc;
  padding: 10px;
  color: #333;
}

.success {
  border-color: green;
}

.error {
  border-color: red;
}

.warning {
  border-color: yellow;
}

运算

scss

scss

css

css

scss

scss

css

css

scss

scss

css

css