sass的基础语法

sass 的变量

再 sass 里面定义一个变量
一次定义多次使用
语法: $名字: 值;
注意:
=> 你的变量名是 $名字
=> 值不需要引号
使用:
=> 直接使用变量名就可以了
只要变量的值修改了
=> 那么所有使用这个变量的位置就都修改了
例子:

// 定义了一个叫做 $color 的变量, 值是 pink
$color: green;
$fs: 30px;
$border: 10px solid #333;

div {
  width: 100px;
  height: 100px;
  color: $color;
  font-size: $fs;
  border: $border;
}

sass 的注释

// 1. 单行注释, 再编译的时候不进行编译
div {
  // 下面设置的是 元素的 宽度
  width: 100px;
}

/*
  2. 多行注释
    => 再编译的时候会保留
    => 再使用 gulp 打包的时候不会保留
*/

/*!
  3. 强力注释
    => 再编译的时候会保留
    => 再使用 gulp 打包的时候也会保留
*/

sass 的条件分支语句

  其实就是
    => if 语句
    => if else 语句
    => if else if 语句
  依赖于变量使用
    => if 语句
      -> 语法: @if 变量 == 值 { 样式 }
    => if else 语句
      -> 语法: @if 变量 == 值 { 样式 } @else { 样式 }
    => if else if 语句
      -> 语法: @if 变量 == 值 { 样式 } @else if 变量 == 值 { 样式 }

例子:

// 准备一个变量
$type: c;

div {
  width: 100px;

  @if $type == a {
    color: red;
  }

}
--------------------------------------------------------------------------------

sass 的循环语句

for 循环

    => 依赖变量使用
    => 语法: 有两种
      1. @for 变量 from 数字 to 数字 { 代码 }
        -> 包含开始数字, 不包含结束数字
        -> 在循环里面使用变量
          => 再选择器中使用 #{变量}
          => 再样式里面使用 变量
      2. @for 变量 from 数字 through 数字 { 代码 }
        -> 包含结束数字
        -> 在循环里面使用变量
          => 再选择器中使用 #{变量}
          => 再样式里面使用 变量

例子:

/* for 循环 */
这个循环的数字变化是 1 2, 不包含 3
@for $i from 1 to 3 {
  li:nth-child(#{$i}) {
    width: 10px*$i;
  }
}

each 循环

    => 依赖一个 sass 数组使用
    => 写一个 sass 数组
      -> 语法: 变量: (), (), (), (), ...
    => each 的使用
      -> 语法: @each 变量1, 变量2, ... in 数组

例子:

/* each 循环 */
// 准备一个数组
//   每一个小括号就是数组里面的每一项
$arr: (1, 5px, red), (2, 6px, green), (3, 9px, skyblue);

// // 写一个循环
@each $index, $fs, $color in $arr {
  li:nth-child(#{$index}) {
    font-size: $fs;
    color: $color;
  }
}

sass 的选择器嵌套

和 html 一样让选择器也有一个上下级的关系
1. 后代选择器嵌套
=> 语法: 父级 { 子级 {} }
2. 子代选择器嵌套
=> 语法: 父级 { > 子级 {} }
3. 连字符选择器嵌套
=> 伪类选择器和伪元素选择器嵌套
=> 当你需要的伪类和伪元素和选择器连接再一起的时候
=> 使用 & 连接符操作
=> 语法: 选择器 { &:hover {} }

例子:

div {
  width: 100px;
  height: 100px;

  // 当鼠标悬停的时候 宽度改变
  &:hover {
    width: 200px;
  }

  &::before {
    content: '';
  }
}
  1. 群组选择器的嵌套(使用太少)
    => 语法: 群组选择器 { 子级 {} }
    => 语法: 选择器 { 群组选择器 {} }
    => 语法: 群组选择器 { 群组选择器 {} }

sass 属性的嵌套

属性嵌套

+ 前提: 可以嵌套的属性才能使用
  => 就是属性中带有中划线的属性
  => border-left
  => margin-left
  => padding-left
  => background-color
  => background-image
+ 语法:  以 padding 为例
  padding: 10px; 上下左右
  padding: 10px 10px; 上下 左右
  padding: 10px 10px 10px 10px; 上 右 下 左
  padding: 10px {
    left: 5px;
  };

例子:

border: 10px solid transparent {
    bottom: 10px solid #333;
  };
}

sass 的混入(混合器/函数) mixin

混合器, 就是类似于 js 里面的函数
    + js 的函数 function 函数名(形参) {}
    + sass 的混合器
      => 语法: @mixin 混合器名称 {}
      => 语法: @mixin 混合器名称(形参) {}
      => 语法: @mixin 混合器名称(形参默认值) {}
    + sass 的混合器的使用
      => 语法: @include 混合器名称;
      => 语法: @include 混合器名称(实参);
注意:不使用的时候是不会被编译的

例子:、

/* 使用方式三 */
//   再定义混合器的时候可以传递一个参数默认值
//   你如果传递了实参, 就用你传递的
//   如果你没有传递实参, 那么就是用默认值
@mixin transition($t: 1s, $p: all, $d: 0s, $tf: linear) {
  -webkit-transition: $p $t $d $tf;
  -moz-transition: $p $t $d $tf;
  -ms-transition: $p $t $d $tf;
  -o-transition: $p $t $d $tf;
  transition: $p $t $d $tf;
}

div {
  width: 100px;
  height: 100px;

  // 使用这个带有参数默认值的混合器
  @include transition; // 不用传递参数, 所有的都用默认值
}

p {
  width: 100px;
  height: 100px;

  // 使用这个带有参数默认值的混合器
  @include transition(2s); // 只传递第一个参数
}

sass 的继承

sass 里面的继承就是使用另一个规则集的样式
    + 当你在写一个样式的时候
      => 你发现和之前写的一个规则集的样式一摸一样
      => 就把刚才写的直接拿下来
    + 语法:
      => @extend 另一个选择器

例子:

div {
  width: 100px;
  height: 100px;
  padding: 10px;
  margin: 20px;
}

p {
  // 继承了 div 里面的所有样式
  @extend div; // 各个同学用的都比较少

  padding: 20px;
  border: 10px solid #333;
}

sass 的导入

导入: 就是把别的文件拿到我这里执行
    + 平时开发的时候
      => 会写一个 base.css 的文件
        -> * { margin: 0; padding: 0; }
        -> 公共样式文件
        -> 这个公共样式文件每个 html 文件都会引入
        -> 在公共文件里面把我们所有需要用到的变量都定义好
      => 你再写每一个文件的时候
        -> 只要导入这个 base.scss 就有了公共样式和这些变量
    + 导入的语法:
      => 语法: @import "你要导入的文件名称";
    + 还有一种使用方式
      => 专门定义一个 variable.scss 的文件
        -> 这里专门就写所有的变量
      => 专门定义一个 mixin.scss 的文件
        -> 这里面专门就写所有的混合器

中国加油!武汉加油!千峰加油!我自己加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值