Sass 中定义了各种类型的函数,其中大部分函数我们可以通过 CSS 语句直接调用。下面是 Sass 中的函数分类:
- 字符串函数
- 数字函数
- 列表函数
- 映射函数
- 选择器函数
- Introspection函数
- 颜色值函数
本节我们先来学习字符串相关函数。
字符串函数有哪些
Sass 中的字符串函数用于处理字符串并获取相关信息。有一点需要注意,一般编程语言中字符串的索引都是从 0开始的,但是注意哟,Sass 中字符串的索引是从 1 开始的。
Sass 字符串函数如下所示:
quote | 给字符串添加引号 |
unquote | 移除字符串的引号 |
str-length | 返回字符串的长度 |
str-index | 返回 substring 子字符串第一次在 string 中出现的位置。 |
str-insert | 在字符串 string 中指定索引位置插入内容 |
str-slice | 从字符串中截取子字符串,允许设置始末位置,未指定结束索引值则默认截取到字符串末尾 |
to-upper-case | 将字符串转成大写 |
to-lower-case | 将字符串转成小写 |
unique-id | 返回一个无引号的随机字符串作为 id |
quote函数
quote
函数主要用来给字符串添加引号,如果字符串本身就带有引号,则会默认变为双引号。
示例:
下面这个例子中,定义了两个变量,这两个变量的值都为字符串,其中一个没有带引号,一个带有单引号:
$str1: java;
$str2: 'python';
.func1{
content: quote($str1);
}
.func2{
content: quote($str2);
}
编译成 CSS 代码:
.func1 {
content: "java";
}
.func2 {
content: "python";
}
使用 quote()
函数给上述两个字符串添加引号后,不管原来的字符串是带有单引号还是不带引号,最终两个字符串输出后都默认带有双引号。
unquote函数
unquote
函数与 quote
函数功能相反,用于移除字符串所带的引号。
示例:
$str1: "hello,xkd";
.func1{
content: unquote($str1);
}
编译成 CSS 代码:
.func1 {
content: hello,xkd;
}
从输出的 CSS 代码可以看出,经过 unquote()
函数处理的字符串,所带的双引号会被移除。
str-length函数
str-length
函数用于返回字符串的长度。此函数
示例:
.func{
content: str-length("hello, xkd");
}
编译成 CSS 代码:
.func {
content: 10;
}
从输出的 CSS 代码可以看出,字符串 hello,xkd
的长度为 10,这里需要注意,空格也占一个长度。
str-index函数
str-index
函数用于返回 substring 子字符串第一次在 string 中出现的位置。其中 substring
和 string
都为函数参数。如果没有匹配到子字符串,则返回 null
。
示例:
.func{
content1: str-index(hello, o);
content2: str-index(abc, a);
content3: str-index(kiki, i);
}
编译成 CSS 代码:
.func {
content1: 5;
content2: 1;
content3: 2;
}
从上述代码中可以看出,当子字符串在字符串中出现多次时,例如 kiki
中 i
出现了两次,使用 str-index()
函数后会返回子字符串第一次出现时所在位置。
str-insert 函数
str-insert
函数用于在字符串 string
中指定索引位置插入内容。第一个参数为字符串,第二个参数为要插入的内容,第三个参数为要插入的位置。
示例:
例如要在 hello,
后面插入 xkd
:
.func {
content: str-insert("hello,", "xkd", 7);
}
编译成 CSS 代码:
.func {
content: "hello,xkd";
}
上述代码中,因为 "hello,"
字符串的长度为6,如果我们要在后面插入xkd
,就要在 7 的位置插入。
str-slice 函数
str-slice
函数用于从字符串中截取子字符串,允许设置开始和结束位置,当未指定结束索引值时,会默认截取到字符串末尾。
示例:
.func {
content: str-slice("abcdefg,", 1, 3);
}
编译成 CSS 代码:
.func {
content: "abc";
}
上述代码中,截取字符串中1到3之间的子字符串,1表示截取字符串的开始位置,3表示截取字符串结束位置。
to-upper-case/to-lower-case 函数
to-upper-case
函数用于将字符串转成大写,to-lower-case
函数用于将字符串转成小写。
示例:
$str:"Hello, XKD";
.func {
content1: to-upper-case($str);
content2: to-lower-case($str);
}
编译成 CSS 代码:
.func {
content1: "HELLO, XKD";
content2: "hello, xkd";
}
unique-id函数
unique-id
函数返回一个无引号的随机字符串作为 id。
示例:
.func {
content: unique-id();
}
编译成 CSS 代码:
.func {
content: uo50mf1eb;
}