sass总结笔记--基础入门

195 阅读3分钟

什么是sass

1.Sass 扩展了 CSS3,增加了规则、变量、混入、选择器、继承等等特性。Sass 生成良好格式化的 CSS 代码,易于组织和维护。

2.工程越大,css文件越大,重复代码越来越多,会变得难以维护,借助Sass可以提高写css的效率。

安装

npm安装

npm install -g sass

// 如果是 Webpack 的使用者,还需要 npm install -g sass-loader

其他安装:sass官网(www.sass.hk/)

编译.scss文件为.css文件

Sass使用.scss作为文件后缀名,不能直接在< link >标签里使用,需要编译为 .css文件。

1.将.scss转成.css文件

// 将aa.scss文件转成bb.css文件

sass aa.scss bb.css

2.将.css文件随.scss文件变化

sass --watch aa.scss:bb.css

3.将css文件夹随包含.scss文件夹变化

// 表示:cc这个文件夹里任意一个.scss文件变化时,就将其编译到名字dd这个文件夹里面(会自动生成相应的.css文件)

sass --watch cc:dd

基础使用

1.变量-$

$main-color:pink !default; // 默认变量
$main0clor:#000; // 全局变量
h1 {
    $main-color:#fff; //局部变量
    color:$main-color;
}

// 编译后:
h1 {
    color:#fff;
}

2.嵌套

div {
     width: 100px;
     ul {
       width: 50px;
       li {
         width: 20px;
       }
     }
     // &--> 父选择器名称
     & p {
         color;#000
     }
   }
   
 // 编译后:
 div {width:100px}
 div ul {width:50px}
 div ul li {width:20px}
 div p { color:#000 }

属性嵌套

 div {
     width: 100px;
     border:1px solid red {
       top: 0;
       left: 0
     }
   }
   
   // 编译后:
 div {
   width:100px;
   border;1px solid red;
   border-top:0;
   border-left:0;
  }

3.继承

一个选择器可以继承另一个选择器的全部样式(通过:@extend)

 .one {
    width: 30px;
  }
  .two {
    @extend .one;
    color: red;
  }
  
  // 编译后
  .one { width:30px }
  .two {
      width:30px;
      color:red;
    }

4.混入mixin

相当于预先写好了一组样式,其它地方直接引用(通过@include)

@mixin 名字(参数1,参数2,...) 
{ 
    ........样式....... 
}

无参数

@mixin hunri {
    width:100px;
    p {
        color:pink;
    }
}

div {
    @include hunri;
}

// 编译后
div {
    width:100px;
}
div p {
    color:pink;
}

有参数(参数名前面要写$)

@mixin hunri($one,$two) {
    width:$one;
    p {
        color:$two;
    }
}

div {
    @include hunri(200px,red);
}

// 编译后
div {
    width:200px;
}
div p {
    color:red;
}

5.Interpolation插入

把一个值插入到另一个值,具体用法如下 #{变量}

$study:color;
div {
    #{$study}:red;
}

// 编译后
div {
    color:red;
}

6.计算

SASS允许在代码中使用算式

div {
    width:(10px*2);
}

// 编译后
div {
    width:20px;
}

7.if判断与循环

@if判断

@if 判断条件 { 
    .......执行语句... 
} @else { 
    ...else有就写没就不写.... 
}
div {
    @if 5>6 {
        color:red;
    }
    @else {
        color:pink;
    }
}

// 编译后
div {
    color:pink
}

@for循环

结束值执行: 
@for 变量 from 开始值 through 结束值 { 
    ...... 
} 

结束值不执行:
@for 变量 from 开始值 to 结束值 { 
    ...... 
}
@for $i from 1 to 3 {
    
    .div#{$i}{
       height: $i*20px;
    }

}

// 编译后
div1 { height:20px }
div2 { height:40px }

@while循环

@while 条件 { ... }
$giao: 1;
@while $giao<3 {
    .div#{$giao}{
        height: $giao*10px;
    }
   $giao : $giao+1;
}

// 编译后
.div1 {
  height: 10px;
}

.div2 {
  height: 20px;
}

@each循环

@each 变量 in 列表{ ... }
$yanse: red blue black;
@each $i in $yanse {
    .div-#{$i}{
      color: $i;
    }
}

// 编译后
.div-red { color:red; }
.div-blue { color:blue; }
.div-black { color:black; }

8.函数

字符串函数

// 1.取除引号
unquote('hello sass!'); === hello sass!

// 2.加引号
quoto(hello sass!); === 'hello sass!'

// 3.大写
to-upper-case('Hello Sass!'); ==='HELLO SASS!'

// 4.小写
to-lower-case('Hello Sass!'); ==='hello sass!'

数字函数

// 1.百分比
percentage(5px/10px);=== 50%

// 2.四舍五入
round(15.6px);=== 16px

// 3.向上取整
ceil(17.1px);=== 18px

// 4.向下取整
floor(17.2px);===17px

// 5.绝对值
abs(-8.5px);===8.5px

// 6.最小值
min(6,50,3,10%);=== 3

// 7.最大值
max(4,10,80%);=== 80%

// 8.随机数
random();=== 0.2344

颜色函数

SASS提供了一些内置的颜色函数,以便生成系列颜色

hsl(色相,饱和度,明度)
div {
    color: hsl(5,20%,20%)
    // 编译后
    color:#3d2b29;
}
hsl(色相,饱和度,明度,不透明度
div {
    color: hsl(5, 20%, 20%,0.5);
    // 编译后
    color:rgba(61, 43, 41, 0.5);
}
调整色相---adjust-hue(颜色,调整的度数)
body{   
   color: adjust-hue(hsl(0,100,50%), 100deg);
   // 编译后
   color:#55ff00;
} 
用来调整颜色明度--- lighten让颜色更亮,darken让颜色更暗
body{   
   background-color: lighten(rgb(228, 145, 145),50%);
   // 编译后
   background-color: white;
   
   color: darken(rgb(228, 145, 145),50%);
   // 编译后
   color: #5f1717;
} 
用来调整颜色纯度 saturate让颜色更纯 ,desaturate让颜色不纯
div {
    color:saturate(颜色,百分比)
}

9.@规则

@import

可用来引入scss和sass文件,所有引入的 SCSS 和 Sass 文件都会被合并并输出一个单一的 CSS 文件。 另外,被导入的文件中所定义的变量或 mixins 都可以在主文件中使用。

@media

@media 指令和 CSS 的使用规则一样的简单,但它有另外一个功能,可以嵌套在 CSS 规则中。

.one {
      width: 100px;
      @media screen and (orientation:landscape) {
        width: 200px;
      }
 }
 
 // 编译后
 .one {
      width: 100px;
 }
 @media screen and (orientation:landscape) {
     .one {
        width: 200px;
      }
 }

@at-root

用来跳出根元素

  .one {
      color: pink;
      .two {
        color: red;
       @at-root .three {
          color: green;
        }
      }
    }
    
 // 编译后
 .one { color:pink }
 .one .two { color:red }
 .three { color:green }

@debug,@warn,@error

在 Sass 中是用来调试的

总结

本文只是自己学习的笔记,参考了许多优秀博主的文章,如介意,请您联系我,马上删除
参考文件:juejin.cn/post/687000…
auroras.blog.csdn.net/article/det…