scss 基本语法整理

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

    • 16
      点赞
    • 62
      收藏
      觉得还不错? 一键收藏
    • 5
      评论
    LESS和SCSS都是一种基于CSS之上的高级语言,它们都提供了更多的功能和特性,可以大大提高代码编写的效率。LESS语法相对来说更加清晰明了,容易上手。而SCSS在功能上更加强大,支持条件语句等高级特性。 LESS语法示例: 1. 变量声明:使用@符号来声明变量,例如:@color: #333; 2. 混合器:使用.mixin来定义和使用代码块的片段,可以实现代码的复用,例如:.mixin { font-size: 14px; color: #333; } 3. 嵌套规则:可以在父选择器内嵌套子选择器,简化了选择器的书写,例如:.parent { .child { color: red; } } 4. 运算:可以对数值进行加减乘除等运算,例如:@width: 100px + 50px; 5. 导入文件:可以使用@import语句导入其他LESS文件,例如:@import "variables.less"; SCSS语法示例: 1. 变量声明:使用$符号来声明变量,例如:$color: #333; 2. 混合器:使用@mixin来定义和使用代码块的片段,可以实现代码的复用,例如:@mixin mixin { font-size: 14px; color: #333; } 3. 嵌套规则:可以在父选择器内嵌套子选择器,简化了选择器的书写,例如:.parent { .child { color: red; } } 4. 运算:可以对数值进行加减乘除等运算,例如:$width: 100px + 50px; 5. 导入文件:可以使用@import语句导入其他SCSS文件,例如:@import "variables.scss"; 总结来说,LESS和SCSS语法上有一些细微的差异,但整体上非常相似,都提供了类似的功能和特性,具体使用哪一种语法主要取决于个人喜好和项目需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [less和scss的区别](https://blog.csdn.net/Jadon_z/article/details/126750935)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [LESS 和 SCSS 的区别](https://blog.csdn.net/sky89299/article/details/124484021)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
    评论 5
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值