scss 基本语法整理

本文详细介绍了 SCSS 的基本语法,包括变量、嵌套规则、混合、继承、导入、注释、数据类型以及控制指令等,帮助开发者更好地理解和运用 SCSS 进行 CSS 预处理。
摘要由CSDN通过智能技术生成

scss 基本使用

Variables 变量

  • 声明变量时需以 $ 开头
  • scss 语法
// 定义变量
$primary-color: #1269b5;
$primary-border: 1px solid $primary-color;

div.box {
   
  background-color: $primary-color;
}

h1.page-header {
   
  border: $primary-border;
}
  • 编译后的 css
div.box {
   
  background-color: #1269b5;
}

h1.page-header {
   
  border: 1px solid #1269b5;
}
/*# sourceMappingURL=Variables.css.map */

嵌套 Nesting

普通嵌套

  • scss 语法
.nav {
   
  height: 100px;
  ul {
   
    margin: 0;
    li {
   
      float: left;
      list-style: none;
      padding: 5px;
    }
  }
}
  • 编译后的 css
.nav {
   
  height: 100px;
}

.nav ul {
   
  margin: 0;
}

.nav ul li {
   
  float: left;
  list-style: none;
  padding: 5px;
}

调用父选择器

  • scss 语法
.nav {
   
  height: 100px;
  ul {
   
    margin: 0;
    li {
   
      float: left;
      list-style: none;
      padding: 5px;
    }
    a {
   
      display: block;
      color: #000;
      padding: 5px;
      &:hover {
   
        background: #0d2ffe;
        color: #fff;
      }
    }
  }
  & &-text {
   
    font-size: 15px;
  }
}
  • 编译后的 css
.nav {
   
  height: 100px;
}

.nav ul {
   
  margin: 0;
}

.nav ul li {
   
  float: left;
  list-style: none;
  padding: 5px;
}

.nav ul a {
   
  display: block;
  color: #000;
  padding: 5px;
}

.nav ul a:hover {
   
  background: #0d2ffe;
  color: #fff;
}

.nav .nav-text {
   
  font-size: 15px;
}

属性嵌套

  • scss 语法
body {
   
  font: {
   
    family: Helvetica, Arial, sans-serif;
    size: 15px;
    weight: normal;
  }
}

.nav {
   
  border: 1px solid #000 {
   
    left: 0;
    right: 0;
  }
}
  • 编译后的 css
body {
   
  font-family: Helvetica, Arial, sans-serif;
  font-size: 15px;
  font-weight: normal;
}

.nav {
   
  border: 1px solid #000;
  border-left: 0;
  border-right: 0;
}

混合 Mixins

基本使用

  • scss 语法
// 定义
@mixin alert {
   
  color: #8a6b3a;
  background-color: #fcf8e3;
  a {
   
    color: #664f2b;
  }
}

// 引用
.alert-waring {
   
  @include alert;
}
  • 编译后的 css
.alert-waring {
   
  color: #8a6b3a;
  background-color: #fcf8e3;
}

.alert-waring a {
   
  color: #664f2b;
}

携带参数

  • scss 语法
@mixin alert($text-color, $background) {
   
  color: $text-color;
  background-color: $background;
  a {
   
    color: darken($color: $text-color, $amount: 10%); // $text-color颜色加深10%
  }
}

// 引用
.alert-waring {
   
  @include alert(#8a6b3a, #fcf8e3);
}
// 指定形参
.alert-info {
   
  @include alert($background: #d9edf7, $text-color: #31708f);
}
  • 编译后的 css
.alert-waring {
   
  color: #8a6b3a;
  background-color: #fcf8e3;
}

.alert-waring a {
   
  color: #664f2b;
}

.alert-info {
   
  color: #31708f;
  background-color: #d9edf7;
}

.alert-info a {
   
  color: #245269;
}

继承 extend

  • scss 语法
.alert {
   
  padding: 15px;
}

.alert a {
   
  font-weight: bold;
}

.alert-info {
   
  @extend .alert;
  background-color: #d9edf7;
}
  • 编译后的 css
.alert,
.alert-info {
   
  padding: 15px;
}

.alert a,
.alert-info a {
   
  font-weight: bold;
}

.alert-info {
   
  background-color: #d9edf7;
}

导入 import

    评论 5
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值