Sass运算符、函数
一、运算符
首先我们要知道Sass的数据类型
- 数字 :1、2、3、10px
- 字符串:有引号的字符串:"foot"、'bar' 没有引号的字符串:baz
- 颜色:blue,#999999,rgba(255,0,0,0.8)
- 布尔类型:true,false
- 空值:null
- 数组(list):用空格或逗号作为分隔符,1.5em 2em 3em ,1.5em,2em,3em
- maps:相当于JavaScript的object,(key1:value1,key2:value2)
基本运算符
-
数学运算符;+ - * / %
-
关于运算符;< > >= <=
-
逻辑运算符 and or not
数学运算符
//数学运算符;+ - * / %
//关于运算符;< > >= <=
//逻辑运算符 and or not
p {
width: 1+2;
width: 1+2px;
width: 10+20%;
width: 20-10;
width: 20-10px;
width: 20-10%;
// 运算符 /:1.作用数学运算符 2.分隔符
// border-radius: 10px/20px; //当两个单位用/进行分隔,/代表的分隔符
// border-radius: 10/20;
// border-radius: 10/20px;
//当变量与数字用/链接,此时代表除法运算符
$num: 10px;
$num_2: 20px;
// border-radius: $num/20;
// border-radius: $num/$num_2;
// border-radius: (10/5);
// border-radius: 10-10/5;
//当不想让变量之间进行除法运算,可以用插值表达式#{}
// border-radius: #{$num}/#{$num_2};
&::after {
content: bb+"aa";
}
}
效果:

补充这里面的除法要注意:
运算符 /:1.作用数学运算符 2.分隔符
- 当两个单位用/进行分隔,/代表的分隔符
- 当变量与数字用/链接,此时代表除法运算符
-
当不想让变量之间进行除法运算,可以用插值表达式#{}
-
这里面的+号表示拼接
关于运算符与逻辑运算符(用法和js很像)
//数学运算符;+ - * / %
//关于运算符;< > >= <=
//逻辑运算符 and or not
p {
$num_3: 100;
$c: red;
@if $num_3>200 or $c!=red {
background-color: blue;
}
@else {
background-color: red;
}
$name:a;
$aitem:border;
p.#{$name} {
#{$aitem}-bottom: 1px solid bisque;
#{$aitem}-top: 1px solid #000;
color: rgba(255, 0, 0, 0.7)+rgba(0, 255, 0, 0.7);
}
}
效果:

二、函数
Saas中的函数(一部分)
-
Color(颜色函数)
Sass包含很多操作颜色的函数。
lighten() 与 darken()函数可用于调亮或调暗颜色
opacify()函数使颜色透明度减少
transparent()函数使颜色透明度增加
mix()函数可用来混合两种颜色。
-
String(字符串函数)
Sass有许多处理字符串的函数。
向字符串添加引号的quote()
获取字符串长度的str-length()
将内容插入字符串给定位置的str-insert()
-
Math(数值函数)
数值函数处理数值计算。
percentage()将无单元的数值转换为百分比
round()将数字四舍五入为最接近的整数
min()和max()获取几个数字中的最小值或最大值
random()返回一个随机数。
-
List函数
List函数操作List。
length()返回列表长度
nth()返回列表中的特定项
join()将两个列表连接在一起
append()在列表末尾添加一个值。
-
Map函数
Map函数操作Map。
map-get()根据键值获取map中的对应值
map-merge()来将两个map合并成一个新的map
map-values()映射中的所有值。
-
selector选择器函数
选择符相关函数可对CSS选择进行一些相应的操作。
selector-append()可以把一个选择符附加到另一个选择符
selector-unify()将两组选择器合成一个复合选择器。
实例:(scss)
.div {
width: 100%;
height: 80px;
}
.div_1 {
@extend .div;
background-color: red;
}
.div_2 {
@extend .div;
background-color: lighten($color: rgb(255, 0, 0), $amount: 30%);
&::after {
content: str-length($string: "DWEB20220701")
}
$arr:(10 30 40 50 60); //定义一个数组
width: round($number: 4.5); //四舍五入
height: length($list: $arr);
$map_name:("name":"柳青", "sex":"女");
&::before {
content: map-get($map: $map_name, $key: "sex")
}
}
.div_3 {
@extend .div;
background-color: darken($color: rgb(255, 0, 0), $amount: 20%);
}
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="css/函数.min.css">
</head>
<body>
<div class="div_1"></div>
<div class="div_3"></div>
<div class="div_2"></div>
</body>
</html>
效果(颜色变亮、变暗):

效果(其他效果只写了一部分):
