sass学习笔记

官网提供的在线编译 https://www.sassmeister.com/

SASS允许使用变量,所有变量以$开头(less是以@开头)

1
2
3
4
$blue: #1875e7;
div{
color: $blue;
}

如果变量需要镶嵌在字符串之中,就必须需要写在#{}之中。

1
2
3
4
$side: left;
.round {
border-#{$side}-radius: 5px;
}

SASS允许在代码中使用算式,但是尽量不要使用“%”,一般用小数

1
2
3
4
5
6
7
$var: 100px;
body {
margin: (14px/2);
top: 50px+100px;
right: $var*0.1;
}
倘若这里用的是$var*10%则会报错,它会提示1000%px是不认识的值;

同less一样sass也是允许选择器嵌套的,如下:

1
2
3
div h1 {
color: red;
}

是可以写成

1
2
3
4
5
div {
h1 {
color: red;
}
}

不光选择器可以嵌套,属性一样可以如下border-color
1
2
3
4
5
p{
border: {
color: red ;
}
}

注意:border后面必须加上冒号;
在嵌套的代码块内,可以使用&引用父元素。比如a:hover伪类,可以写成:

1
2
3
a {
    &:hover { color: #ffb3ff; }
  }

SASS共有两种注释风格。

标准的CSS注释 / comment / ,会保留到编译后的文件。
单行注释 // comment,只保留在SASS源文件中,编译后被省略。
在/*后面加一个感叹号,表示这是”重要注释”。即使是压缩模式编译,也会保留这行注释,通常可以用于声明版权信息。
1
// 这段注释只在sass中有。
1
/* 这段注释在sass和css中有*/
1
/*! 然而这一段不光在sass和css中有,哪怕在压缩模式下编译的一样会有*/

一样的sass也是有继承的,通俗的讲就是把某个样式块打包放进来如下:

1
2
3
.class1 {
 border: 1px solid #ddd;
}

class2要继承class1,就要使用@extend命令

1
2
3
4
.class2 {
  @extend .class1;
  font-size:120%;
}

和下面的一样

1
2
3
4
5
6
7
.class1 {
  border: 1px solid #ddd;
}
.class2 {
  border: 1px solid #ddd;
  font-size:120%;
}

Mixin

Mixin有点像C语言的宏(macro),是可以重用的代码块。

使用@mixin命令,定义一个代码块。

1
2
3
4
@mixin left {
    float: left;
    margin-left: 10px;
}

使用@include命令,调用这个mixin。

1
2
3
div {
  @include left;
}

mixin的强大之处,在于可以指定参数和缺省值。

1
2
3
4
@mixin left($value: 10px) {
  float: left;
  margin-right: $value;
}

使用的时候,根据需要加入参数:

1
2
3
div {
  @include left(20px);
}

下面是一个mixin的实例,用来生成浏览器前缀。

1
2
3
4
5
@mixin rounded($vert, $horz, $radius: 10px) {
  border-#{$vert}-#{$horz}-radius: $radius;
  -moz-border-radius-#{$vert}#{$horz}: $radius;
  -webkit-border-#{$vert}-#{$horz}-radius: $radius;
}

使用的时候,可以像下面这样调用:

1
2
3
#navbar li { @include rounded(top, left); }
#footer { @include rounded(top, left, 5px); }
div {@include rounded(top,left,20px);}

颜色函数

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

1
2
3
4
lighten(#cc3, 10%) // #d6d65c
darken(#cc3, 10%) // #a3a329
grayscale(#cc3) // #808080
complement(#cc3) // #33c

插入文件

@import命令,用来插入外部文件。

1
@import "path/filename.scss";

如果插入的是.css文件,则等同于css的import命令,这也就意味着不要这么使用。

1
@import "foo.css";

条件语句

@if可以用来判断:

1
2
3
4
p {
  @if 1 + 1 == 2 { border: 1px solid; }
  @if 5 < 3 { border: 2px dotted; }
}

####配套的还有@else命令:

1
2
3
4
5
@if lightness($color) > 30% {
  background-color: #000;
} @else {
  background-color: #fff;
}

循环语句

####SASS支持for循环:

1
2
3
4
5
@for $i from 1 to 10 {
  .border-#{$i} {
    border: #{$i}px solid blue;
  }
}

也支持while循环:

1
2
3
4
5
$i: 6;
@while $i > 0 {
  .item-#{$i} { width: 2em * $i; }
  $i: $i - 2;
}

each命令,作用与for类似:

1
2
3
4
5
@each $member in a, b, c, d {
  .#{$member} {
    background-image: url("/image/#{$member}.jpg");
  }
}

自定义函数

SASS允许用户编写自己的函数。

1
2
3
4
5
6
@function double($n) {
 @return $n * 2;
}
#sidebar {
 width: double(5px);
}

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 官网提供的在线编译 https://www.sassmeister.com/
  2. 2. SASS允许使用变量,所有变量以$开头(less是以@开头)
  3. 3. 如果变量需要镶嵌在字符串之中,就必须需要写在#{}之中。
  4. 4. SASS允许在代码中使用算式,但是尽量不要使用“%”,一般用小数
  5. 5. 同less一样sass也是允许选择器嵌套的,如下:
    1. 5.1. 不光选择器可以嵌套,属性一样可以如下border-color
  6. 6. SASS共有两种注释风格。
    1. 6.1. 标准的CSS注释 / comment / ,会保留到编译后的文件。
    2. 6.2. 单行注释 // comment,只保留在SASS源文件中,编译后被省略。
    3. 6.3. 在/*后面加一个感叹号,表示这是”重要注释”。即使是压缩模式编译,也会保留这行注释,通常可以用于声明版权信息。
  7. 7. 一样的sass也是有继承的,通俗的讲就是把某个样式块打包放进来如下:
  • Mixin
    1. 1. Mixin有点像C语言的宏(macro),是可以重用的代码块。
    2. 2. 使用@mixin命令,定义一个代码块。
    3. 3. 使用@include命令,调用这个mixin。
    4. 4. mixin的强大之处,在于可以指定参数和缺省值。
    5. 5. 使用的时候,根据需要加入参数:
    6. 6. 下面是一个mixin的实例,用来生成浏览器前缀。
    7. 7. 使用的时候,可以像下面这样调用:
  • 颜色函数
    1. 1. SASS提供了一些内置的颜色函数,以便生成系列颜色。
  • 插入文件
    1. 1. @import命令,用来插入外部文件。
    2. 2. 如果插入的是.css文件,则等同于css的import命令,这也就意味着不要这么使用。
  • 条件语句
    1. 1. @if可以用来判断:
  • 循环语句
    1. 1. 也支持while循环:
    2. 2. each命令,作用与for类似:
  • 自定义函数
    1. 1. SASS允许用户编写自己的函数。
  • ,