Sass 函数
本节教程来讲解 Sass 中的,这在 Sass 中是比较强大的,同时使用场景和语法也比较多,所以本节篇幅较长,但你一定要好好学习, Sass 很重要!在 Sass 中中几乎可以用到前面你学的所有章节的,所以说万象同时也非常强大,本节我们将详细讲解 Sass 中各种的和。
是一段可以被另外的程序或的“子程序”,由称为体的一系列语句组成,并且也可以接收值,在大多数语言中都是这样的,Sass 中的也是一样。
Sass 为我们提供了很多内置模块,其中就包含了很多(一些指令),我们可以通过 @use 去加载它们,然后我们就可以了,当然还有一些可以直接在 CSS 语句中,在 Sass 中常用的有:
上面这些为我们提供了强大而丰富的来更高效地编写样式,下面我们来详细讲解 Sass 。
我们先来看一段 Sass 的来直观感受一下:
$list@H__63@@H__63@:@H__63@ [,,,];@H__63@
$string@H__63@@H__63@:@H__63@ 'string'@H__63@;@H__63@
$substring@H__63@@H__63@:@H__63@ 'str'@H__63@;@H__63@
.@R_882_2@ @H__63@{@H__63@
font-size@H__63@:@H__63@length@H__63@(@H__63@$list@H__63@)@H__63@;@H__63@ // 列表@H__63@
font@H__63@:@H__63@ quote@H__63@(@H__63@$string@H__63@)@H__63@;@H__63@ // 字符串@H__63@
font@H__63@:@H__63@ str-index@H__63@(@H__63@$string@H__63@, $substring@H__63@)@H__63@;@H__63@ // 字符串@H__63@
color@H__63@:@H__63@ adjust-hue@H__63@(@H__63@#6b717f@H__63@, deg)@H__63@;@H__63@ // 颜色@H__63@
border-width@H__63@:@H__63@ ceil@H__63@(@H__63@)@H__63@;@H__63@ // 数字@H__63@
width@H__63@:@H__63@ percentage@H__63@(@H__63@)@H__63@;@H__63@ // 数字@H__63@
font@H__63@:@H__63@ type-of@H__63@(@H__63@#676767@H__63@)@H__63@;@H__63@ // Introspection@H__63@
}@H__63@
上面的示例中我们举了几种的例子,在实际开发中并不会这么写,这里把它们作为值只是为了直观的展示,所以先不要在意;可以从上面的例子看出,的使用就像 javascript 中的一样,通过名来,然后在括号中传参,最后会得到的返回结果,那上面示例中这些的返回结果是什么呢?转换为 CSS 的如下:
.@R_882_2@@H__63@ @H__63@{@H__63@
font-size@H__63@:@H__63@ ;@H__63@
font@H__63@:@H__63@ "string"@H__63@;@H__63@
font@H__63@:@H__63@ ;@H__63@
color@H__63@:@H__63@ #796b7f@H__63@;@H__63@
border-width@H__63@:@H__63@ ;@H__63@
width@H__63@:@H__63@ ;@H__63@
font@H__63@:@H__63@ color;@H__63@
}@H__63@
可以看到上面转换为 CSS 的中的值就是的返回结果,可能你还不是很懂,没关系下面我们开始详细讲解 Sass 提供的这些!你要知道 Sass 中的也是通过名并传参,最后 Sass 会为你返回的执行结果。
在上面的语法示例中你已经感受了 Sass ,下面我们开始详细的来讲解它。
字符串主要提供了字符串类型的相关操作,就像在 javascript 中一样,Sass 提供的字符串可以的长度,字符串的下标以及字符串中的大小写字母转换等等。
这两个我们放在一起讲解,它们都接收 1 个参数,参数是字符串类型,quote($string) 的返回结果是 以带引号的形式返回你传入的字符串,反之 unquote($string) 的返回结果是以不带引号的形式返回你传入的字符串,我们举例看下:
stringquote@H__63@(@H__63@aaa)@H__63@ //=> "aaa"@H__63@
unquote@H__63@(@H__63@"bbb"@H__63@)@H__63@ //=> bbb@H__63@
str-index($string, $substring) 接收 2 个参数,返回 $substring 在 $string 中的第一次出现的索引,如果在 $string 中不包含 $substring 则返回 null ,我们举例看下:
str-index@H__63@(@H__63@"abcde"@H__63@, "a"@H__63@)@H__63@ //=> 1@H__63@
str-index@H__63@(@H__63@"abcde"@H__63@, "c"@H__63@)@H__63@ //=> 3@H__63@
看见 insert 这个词我们就能猜到,这个是用于字符串的插入,str-insert($string, $insert, $index) 接收 3 个参数,第 1 个参数是字符串,第 2 个参数是要插入的字符串,第 3 个参数是插入的位置,返回结果是插入后的字符串:
str-insert@H__63@(@H__63@"abcde"@H__63@, "j"@H__63@, )@H__63@ //=> "jabcde"@H__63@
str-insert@H__63@(@H__63@"abcde"@H__63@, "j"@H__63@, )@H__63@ //=> "abcjde"@H__63@
str-insert@H__63@(@H__63@"abcde"@H__63@, "j"@H__63@, )@H__63@ //=> "abcdej"@H__63@
str-insert@H__63@(@H__63@"abcde"@H__63@, "j"@H__63@, -)@H__63@ //=> "jabcde"@H__63@
从上面的例子我们可以看到,当第 3 个参数大于 $string 的长度,将会插入到,末尾;反之,如果小于 $string 长度的负值,则会插入到开始位置。
这个用于传入的字符串的长度,只接收字符串参数,返回值是它的长度,返回值是 number 类型,我们举例看下:
str-length@H__63@(@H__63@"abcde"@H__63@)@H__63@ //=> 5@H__63@
这个用于字符串的,str-slice($string, -at, $end-at) 接收 3 个参数,第 1 个参数是字符串,第 2 个参数是要的开始位置,第 3 个参数是要的结束位置,返回结果是到的字符串;要记住 Sass 的字符串返回的字符串是包含的开始和结束位置字符的,我们举例看下:
str-slice@H__63@(@H__63@"abcde"@H__63@, , )@H__63@ //=> "ab"@H__63@
str-slice@H__63@(@H__63@"abcde"@H__63@, , )@H__63@ //=> "bcd"@H__63@
这两个我们放在一起来讲解,它们都接收 1 个字符串参数;to-upper-case($string) 将传入的字符串转换为大写并返回,to-lower-case($string) 将传入的字符串转换为小写并返回:
to-upper-case@H__63@(@H__63@"abcde"@H__63@)@H__63@ //=> "ABCDE" 转为大写@H__63@
to-upper-case@H__63@(@H__63@"Abc"@H__63@)@H__63@ //=> "ABC" 转为大写@H__63@
to-lower-case@H__63@(@H__63@"ABC"@H__63@)@H__63@ //=> "abc" 转为小写@H__63@
to-lower-case@H__63@(@H__63@"Abc"@H__63@)@H__63@ //=> "abc" 转为小写@H__63@
unique-id() 会返回的字符串,并且这个字符串在 Sass 编译中是唯一的,这个我们用得不多,不过当你需要唯一的字符串标识的时候你可以使用它:
unique-id@H__63@(@H__63@)@H__63@ //=> urgdjis@H__63@
上面我们讲解了字符串,字符串可以让你方便地操作字符串,还为你提供了对字符串的增删改查,下面我们来讲解数字。
Sass 提供了很多数字来提供计算和数值转换等,在 Sass 中我们也称之为 Math ,就像 javascript 中提供的 Math 一样,为我们提供了很多数学上的计算,首先我们先举例看一下简单的仅有数学计算意义的数字:
math$e@H__63@ //=> 2.7182818285 返回数学常数 e 的值@H__63@
math$pi@H__63@ //=> 3.1415926536 返回数学常数 π 的值@H__63@
ceil@H__63@(@H__63@)@H__63@ //=> 5 向上取整@H__63@
floor@H__63@(@H__63@)@H__63@ //=> 4 向下取整@H__63@
round@H__63@(@H__63@)@H__63@ //=> 4 四舍五入取近似值@H__63@
round@H__63@(@H__63@)@H__63@ //=> 5 四舍五入取近似值@H__63@
abs@H__63@(@H__63@-px)@H__63@ //=> 10px 取绝对值@H__63@
mathcos@H__63@(@H__63@deg)@H__63@ //=> -0.1736481777 返回余弦值,单位必须与deg兼容或无单位@H__63@
mathsin@H__63@(@H__63@deg)@H__63@ //=> 0.984807753 返回正弦值,单位必须与deg兼容或无单位@H__63@
mathtan@H__63@(@H__63@deg)@H__63@ //=> -5.6712818196 返回正切值,单位必须与deg兼容或无单位@H__63@
mathacos@H__63@(@H__63@)@H__63@ //=> 60deg 返回反余弦值,传入的参数不可带单位@H__63@
mathasin@H__63@(@H__63@)@H__63@ //=> 30deg 返回反正弦值,传入的参数不可带单位@H__63@
math@H__63@(@H__63@)@H__63@ //=> 84.2894068625deg 返回反正切值,传入的参数不可带单位@H__63@
random@H__63@(@H__63@)@H__63@ //=> 返回 0~1 之数@H__63@
percentage@H__63@(@H__63@)@H__63@ //=> 20% 将无单位的小数转换为百分比数@H__63@
这个用于计算对数,它会返回 $number 相对于 $base 的对数,这两个参数是不可以带有单位的。
mathlog@H__63@(@H__63@)@H__63@ //=> 2.302585093@H__63@
mathlog@H__63@(@H__63@, )@H__63@ //=> 1@H__63@
math.pow($base, $exponent) 用于计算 $base 的 $exponent 次幂,是用于幂运算的。
mathpow@H__63@(@H__63@, )@H__63@ //=> 100@H__63@
math.sqrt($number) 返回传入参数的平方根。
mathsqrt@H__63@(@H__63@)@H__63@ //=> 10@H__63@
comparable($number1, $number2) 用来判断两个数值的单位是否兼容,它的返回结果是布尔值,这个在你需要对单位进行要求的时候很有用,我们举例看下:
comparable@H__63@(@H__63@px, )@H__63@ //=> true@H__63@
comparable@H__63@(@H__63@px, px)@H__63@ //=> true@H__63@
comparable@H__63@(@H__63@px, em)@H__63@ //=> false@H__63@
unitless($number) 用于判断传入的数值是否没有单位,返回结果是布尔值,如果没带单位返回 true,带单位则返回 false。
unitless@H__63@(@H__63@)@H__63@ //=> true@H__63@
unitless@H__63@(@H__63@px)@H__63@ //=> false@H__63@
unit($number) 会返回传入数值的单位,并且是将单位以字符串的形式返回的,我们来看下:
unit@H__63@(@H__63@)@H__63@ //=> ""@H__63@
unit@H__63@(@H__63@px)@H__63@ //=> "px"@H__63@
unit@H__63@(@H__63@em)@H__63@ //=> "em"@H__63@
这两个分别接收以逗号分隔的数值,并且分别返回其中最大的值和最小的值。
mathmax@H__63@(@H__63@, )@H__63@ //=> 8@H__63@
mathmin@H__63@(@H__63@, )@H__63@ //=> 4@H__63@
上面我们讲了 Sass 中数字,这些是辅助你来对数字类型的值进行一些操作,很像 javascript 中提供的 Math ,你不需要死记硬背,这些需要用到的时候再查也可以。
在前面的数据类型我们讲过,在 Sass 中有一种数据类型是列表类型,那么列表就是用来的,下面我们一起来看下 Sass 提供了哪些列表。
append($list, $val, $separator) 用于向列表的末尾插入元素,它接收 3 个参数,第 1 个参数是列表(以空格或者逗号分隔),第 2 个参数是要插入的值(也可以是列表),第 3 个参数 $separator 表示返回的列表是否使用与 $list 相同的分隔符,这个认是 auto ( 使用与$list相同的分隔符),这个的返回值也是列表。我们举例看下:
append@H__63@(@H__63@ , )@H__63@ //=> 10 11 12 13@H__63@
append@H__63@(@H__63@(@H__63@,,)@H__63@, )@H__63@ //=> 10, 11, 12, 13@H__63@
这里需要注意的是,如果第 1 个参数你是使用逗号分隔的列表,那么你要将这个列表使用括号括起来!
join($list1, $list2, $separator, $bracketed) 用于连接两个列表,上面我们讲到向列表认插入元素,如果插入的元素是列表,那么请你使用 join 。
这个接收 4 个参数,第 1 个参数是列表,第 2 个参数是要插入的列表,第 3 个参数是返回列表的分隔符,认是 auto (列表将使用与$list1相同的分隔符(如果有分隔符),否则使用与$list2相同的分隔符,或者使用空格。不允许使用其他值),第 4 个参数是布尔值,用来设置返回的列表是否包含方括号。我们举例来看下:
join@H__63@(@H__63@ , )@H__63@ //=> 5 6 7 8@H__63@
join@H__63@(@H__63@(@H__63@,)@H__63@, (@H__63@,)@H__63@)@H__63@ //=> 5, 6, 7, 8@H__63@
join@H__63@(@H__63@ , , $bracketed@H__63@@H__63@:@H__63@ true@H__63@)@H__63@ //=> [5 6 7 8]@H__63@
这里需要注意的是,如果列表类型的参数是使用逗号分隔的列表,那么你要将这个列表使用括号括起来!
index($list, $value) 用于返回 $value 在列表 $list 中的索引,如果在 $list 中没有 $value 则返回 null。
index@H__63@(@H__63@a b solid, b)@H__63@ //=> 2@H__63@
index@H__63@(@H__63@a b solid, solid)@H__63@ //=> 3@H__63@
这个比较简单,就是返回列表的长度。返回的值是 number 类型。
length@H__63@(@H__63@a b solid)@H__63@ //=> 3@H__63@
length@H__63@(@H__63@""@H__63@)@H__63@ //=> 1@H__63@
这个用来返回列表的分隔符,如果没有分隔符就返回空格 space 。
list-separator@H__63@(@H__63@a b)@H__63@ //=> space@H__63@
list-separator@H__63@(@H__63@(@H__63@a,b)@H__63@)@H__63@ //=> comma@H__63@
nth($list, $n) 这个用于通过索引在列表中取元素,第 1 个参数是列表,第 2 个参数 $n 是索引位置,如果 $n 为负数,则从列表的末尾开始计数。如果索引 $n 处没有元素,则引发。
nth@H__63@(@H__63@a b c d, )@H__63@ //=> b@H__63@
上面讲解了一些比较常见的列表,它很像 javascript 中提供的一些数组,在 Sass 中你可以对列表类型的数据使用各种各样的列表来满足你的需求。
Introspection实际在样式中写的非常少,一般用于的调试以及做一些判断。这里我们只举几个例子来看下:
type-of@H__63@(@H__63@px)@H__63@ //=> number 用于判断数据的类型,返回数据的类型@H__63@
type-of@H__63@(@H__63@px px px)@H__63@ //=> list 用于判断数据的类型,返回数据的类型@H__63@
variable-exists@H__63@(@H__63@"a"@H__63@)@H__63@ //=> false 用于判断当前范围中变量是否存在,这里是判断变量 $a 是否存在@H__63@
module-variables@H__63@(@H__63@$module@H__63@)@H__63@ //=> 用于返回模块中定义的所有变量@H__63@
call@H__63@(@H__63@$function@H__63@, $args@H__63@)@H__63@ //=> 使用 $args $function,这个很像 javascript 中的 call@H__63@
上面举了几个 Introspection的例子,这类一般很少直接用到样式中,入门实战你只需要了解有这类就可以,刚开始很少会直接应用。
if($condition, $if-true, $if-false) 是 Sass 中的条件,它接收 3 个参数,第 1 个参数是判断条件或者布尔值,第 2 个参数是当判断条件为真时的返回值,第 3 个参数是当判断条件为假时的返回值。我们举例看下:
if@H__63@(@H__63@true@H__63@, px, px)@H__63@ //=> 18px@H__63@
if@H__63@(@H__63@true@H__63@, px, px)@H__63@ //=> 16px@H__63@
还记得我们在 Sass 数据类型章节讲到的 Maps 类型吗,Map 就是提供了很多操作 Maps 类型数据的。
map-get($map, $key) 是从 $map 中取出 key 为 $key 的值,第 1 个参数是 Maps 类型的数据,我们举例看下:
$val_map@H__63@@H__63@:@H__63@ (@H__63@"a"@H__63@:@H__63@ , "b"@H__63@:@H__63@ , "c"@H__63@:@H__63@ )@H__63@;@H__63@ // 定义 maps 类型的数据@H__63@
map-get@H__63@(@H__63@$val_map@H__63@, "a"@H__63@)@H__63@ //=> 1@H__63@
map-get@H__63@(@H__63@$val_map@H__63@, "b"@H__63@)@H__63@ //=> 2@H__63@
这个就很像 javascript 中从 object 数据取值,它的也很单一,只是取值。
map-has-key($map, $key) 这个返回在 $map 中是否有 $key,返回的值是布尔类型。
$val_map@H__63@@H__63@:@H__63@ (@H__63@"a"@H__63@:@H__63@ , "b"@H__63@:@H__63@ , "c"@H__63@:@H__63@ )@H__63@;@H__63@ // 定义 maps 类型的数据@H__63@
map-has-key@H__63@(@H__63@$val_map@H__63@, "b"@H__63@)@H__63@ //=> true@H__63@
map-has-key@H__63@(@H__63@$val_map@H__63@, "e"@H__63@)@H__63@ //=> false@H__63@
map-keys($map) 返回传入的 map 中所有的 key,并且会以逗号分隔为列表返回。
$val_map@H__63@@H__63@:@H__63@ (@H__63@"a"@H__63@:@H__63@ , "b"@H__63@:@H__63@ , "c"@H__63@:@H__63@ )@H__63@;@H__63@ // 定义 maps 类型的数据@H__63@
map-keys@H__63@(@H__63@$val_map@H__63@)@H__63@ //=> "a","b","c"@H__63@
map-merge($map1, $map2) 用于合并两个 maps 类型的数据 $map1 和 $map2,并且会返回新的 map,如果 $map1 和 $map2 中有相同的 key ,那么 $map2 中的数据会覆盖 $map1 中的这条数据,这个和 javascript 中合并两个对象的很类似。我们举例看下:
$val_map1@H__63@@H__63@:@H__63@ (@H__63@"a"@H__63@:@H__63@ , "b"@H__63@:@H__63@ )@H__63@;@H__63@
$val_map2@H__63@@H__63@:@H__63@ (@H__63@"c"@H__63@:@H__63@ , "d"@H__63@:@H__63@ )@H__63@;@H__63@
map-merge@H__63@(@H__63@$val_map1@H__63@, $val_map2@H__63@)@H__63@
// => 返回的数据@H__63@
// (@H__63@
// "a": 1,@H__63@
// "b": 2,@H__63@
// "c": 3,@H__63@
// "d": 4@H__63@
// )@H__63@
看到 remove 我们就知道这个是用来的,map-remove($map, $keys…) 用来 $map 中的或多个与 $keys 关联的值,并且返回后的 map。
$val_map@H__63@@H__63@:@H__63@ (@H__63@"a"@H__63@:@H__63@ , "b"@H__63@:@H__63@ , "c"@H__63@:@H__63@ )@H__63@;@H__63@ // 定义 maps 类型的数据@H__63@
map-remove@H__63@(@H__63@$val_map@H__63@, "a"@H__63@, "b"@H__63@)@H__63@ //=> ("c": 3)@H__63@
前面讲到可以返回 map 中所有的 key ,map-values($map) 这个与其类似是用来返回 map 中所有的 value,同样会以逗号分隔为列表返回。
$val_map@H__63@@H__63@:@H__63@ (@H__63@"a"@H__63@:@H__63@ , "b"@H__63@:@H__63@ , "c"@H__63@:@H__63@ )@H__63@;@H__63@ // 定义 maps 类型的数据@H__63@
map-values@H__63@(@H__63@$val_map@H__63@)@H__63@ //=> 1,2,3@H__63@
到这里我们讲了 Map ,你可以使用各种 Map 来对 Maps 数据类型进行操作和增删改查。
Sass 中提供了非常非常多的颜色用来处理颜色值,它们很多需要你具有专业的调色及配色知识才能发挥出作用,所以本节我们不讲的那么复杂,本节中我们只讲几种常见的、比较简单的颜色,其他特别复杂的用于调色的在以后你可以再慢慢研究。
Sass 提供了可以色值中红色通道、绿色通道和蓝色通道色值的,它们分别是 red($color) 、green($color) 和 blue($color)。你可能还不太了解这三种通道是什么,不要紧,只要知道这三种和它的使用就可以。我们举例看下:
blue@H__63@(@H__63@#BA55D3@H__63@)@H__63@ //=> 211@H__63@
red@H__63@(@H__63@#BA55D3@H__63@)@H__63@ //=> 186@H__63@
green@H__63@(@H__63@#BA55D3@H__63@)@H__63@ //=> 85@H__63@
saturate($color, $amount) 用于调整 $color 的饱和度,第 1 个参数 $color 是颜色值,第 2 个参数是 0% ~ 100% 之百分数,其返回值也是颜色值。
saturate@H__63@(@H__63@#BA55D3@H__63@, )@H__63@ //=> #c740e8@H__63@
这是非常强大的颜色,它接收很多个参数,可以调整色值的很多,这个颜色的红、绿、蓝通道,以及亮度等等,我们只能举例来直观的看下:
scale-color@H__63@(@H__63@#BA55D3@H__63@, $red@H__63@@H__63@:@H__63@ )@H__63@ //=> #c455d3 调整红色通道@H__63@
scale-color@H__63@(@H__63@#BA55D3@H__63@, $blue@H__63@@H__63@:@H__63@ )@H__63@ //=> #ba55da 调整蓝色通道@H__63@
scale-color@H__63@(@H__63@#BA55D3@H__63@, $lightness@H__63@@H__63@:@H__63@ -, $saturation@H__63@@H__63@:@H__63@ )@H__63@ //=> #b338d2 调整亮度和饱和度@H__63@
scale-color@H__63@(@H__63@#BA55D3@H__63@, $alpha@H__63@@H__63@:@H__63@ -)@H__63@ //=> rgba(186, 85, 211, 0.7) 调整不透明度@H__63@
通过上面的例子可以看到颜色提供了非常强大的用于调色的,驾驭它的前提是你要有非常丰富的调色知识以及一定的美术基础。在实际的项目中我们非常少的用到颜色,因为一般都是由公司的 UI 设计师来进行调色,所以作为入门教程,你只需要了解 Sass 中的颜色就好。
上面用了非常长的篇幅讲解了 Sass 提供的,基本都覆盖了,那在实际的项目中我们是怎么应用的这些呢?哪些比较有用哪些不是很常用呢?一起来看下在我的项目中对 Sass 的应用:一般来说我们的项目中会有 function.scss 来单独维护各种各样的,我将我项目中 function.scss 中部分粘贴出来:
// 字符串的后半部分@H__63@
@function@H__63@ middleStr@H__63@(@H__63@$str@H__63@)@H__63@ {@H__63@
$leng@H__63@@H__63@:@H__63@ str-length@H__63@(@H__63@$str@H__63@)@H__63@;@H__63@
@H__63@@H__63@:@H__63@ $leng@H__63@ /@H__63@ ;@H__63@
@return@H__63@ str-slice@H__63@(@H__63@$str@H__63@, @H__63@, $leng@H__63@)@H__63@;@H__63@
}@H__63@
// 判断class长度范围@H__63@
@function@H__63@ classLong@H__63@(@H__63@$class@H__63@, $max@H__63@)@H__63@ {@H__63@
$leng@H__63@@H__63@:@H__63@ str-length@H__63@(@H__63@$class@H__63@)@H__63@;@H__63@
@if@H__63@ $leng@H__63@ > $max@H__63@ @H__63@{@H__63@
@return@H__63@ true@H__63@;@H__63@
}@H__63@ @else@H__63@ {@H__63@
@return@H__63@ false@H__63@;@H__63@
}@H__63@
}@H__63@
// 大小写转换@H__63@
@function@H__63@ upperOrLower@H__63@(@H__63@$str@H__63@, $type@H__63@)@H__63@ {@H__63@
@if@H__63@ type-of@H__63@(@H__63@$str@H__63@)@H__63@ == "string" @H__63@{@H__63@
@if@H__63@ $type@H__63@ == "upper" @H__63@{@H__63@
@return@H__63@ to-upper-case@H__63@(@H__63@$str@H__63@)@H__63@;@H__63@
}@H__63@ @else@H__63@ {@H__63@
@return@H__63@ to-lower-case@H__63@(@H__63@$str@H__63@)@H__63@
}@H__63@
}@H__63@
}@H__63@
上面的中看出,一般我们使用 指令 @function 来定义我们自己的,这个我们在后面的章节会单独讲解,在我的各种中,我用到了本节所讲的 Sass 提供的一些,这其中对字符串的操作等等,你可以从上面这段中找出来,一般来说在项目中只有封装一些通用的或指令的时候,会用到 Sass 提供的这些来辅助我们!
本节我们讲了 Sass 提供的各种各样的,基本覆盖到了比较常用的、常见的,它们分别是:
我列出 Sass 的一张长图,这里基本涵盖了常见的常用的,可以方便你复习和查阅 Sass 中的:
你需要多练习多使用这些,慢慢的就会记住它们了,我认为其实就是一系列的工具,多加使用,熟能生巧!