sass:list

兼容性:
Dart·Sass(Dart Sass)
从  1.23.0开始
LibSass
rubySass

目前只有Dart Sass支持使用加载内置模块@use。其他实现的用户必须使用其全局名称来调用函数。

???? 有趣的事实:

在Sass中,每个映射都算作一个列表,其中包含每个键/值对的两个元素的列表。例如,(1: 2, 3: 4)算作(1 2, 3 4)。因此,所有这些功能也适用于地图!

各个值也计为列表。所有这些功能都视为1px包含值的列表  1px

list.append($list, $val, $separator: auto)
append($list, $val, $separator: auto) //=> list 

返回的副本$list$val添加到末尾。

如果$separatorcomma,则返回的列表以逗号分隔。如果为space,则返回的列表以空格分隔。如果是auto(默认值),则返回列表将使用与$list(或space如果$list没有分隔符)相同的分隔符。不允许使用其他值。

请注意,与是列表不同的是list.join()$val它嵌套在返回列表中,而不是将其所有元素添加到返回列表中。

SCSS  语法

@debug list.append(10px 20px, 30px); // 10px 20px 30px
@debug list.append((blue, red), green); // blue, red, green
@debug list.append(10px 20px, 30px 40px); // 10px 20px (30px 40px)
@debug list.append(10px, 20px, $separator: comma); // 10px, 20px
@debug list.append((blue, red), green, $separator: space); // blue red green

Sass语法

@debug list.append(10px 20px, 30px)  // 10px 20px 30px
@debug list.append((blue, red), green)  // blue, red, green
@debug list.append(10px 20px, 30px 40px)  // 10px 20px (30px 40px)
@debug list.append(10px, 20px, $separator: comma)  // 10px, 20px
@debug list.append((blue, red), green, $separator: space)  // blue red green
list.index($list, $value)
index($list, $value) //=> number | null 

返回指数$value在  $list

如果$value未出现$list,则返回null。如果在中$value出现多次$list,则返回其第一次出现的索引。

SCSS  语法

@debug list.index(1px solid red, 1px); // 1
@debug list.index(1px solid red, solid); // 2
@debug list.index(1px solid red, dashed); // null

Sass语法

@debug list.index(1px solid red, 1px)  // 1
@debug list.index(1px solid red, solid)  // 2
@debug list.index(1px solid red, dashed)  // null
list.is-bracketed($list)
is-bracketed($list) //=> boolean 

返回是否$list有方括号。

SCSS  语法

@debug list.is-bracketed(1px 2px 3px); // false
@debug list.is-bracketed([1px, 2px, 3px]); // true

Sass语法

@debug list.is-bracketed(1px 2px 3px)  // false
@debug list.is-bracketed([1px, 2px, 3px])  // true
list.join($list1, $list2, $separator: auto, $bracketed: auto)
join($list1, $list2, $separator: auto, $bracketed: auto) //=> list 

返回包含元素的新列表,$list1后跟的元素  $list2

Head️抬头!

由于单个值算作单元素列表,因此可以使用list.join()将值添加到列表的末尾。但是,不建议这样做,因为如果该值是一个列表,它将被连接起来,这可能不是您所期望的。

list.append()改为使用单个值添加到列表。仅用于list.join()将两个列表合并为一个。

如果$separatorcomma,则返回的列表以逗号分隔。如果为space,则返回的列表以空格分隔。如果是auto(默认值),则返回的列表将使用相同的分隔符,就$list1好像它具有分隔符一样,或者$list2如果它具有分隔符,或者否则space。不允许使用其他值。

如果$bracketedtrue,则返回的列表带有方括号。如果为false,则返回的列表没有括号。如果是auto(默认),则返回列表将放在括号$list1中。不允许使用其他值。

SCSS  语法

@debug list.join(10px 20px, 30px 40px); // 10px 20px 30px 40px
@debug list.join((blue, red), (#abc, #def)); // blue, red, #abc, #def
@debug list.join(10px, 20px); // 10px 20px
@debug list.join(10px, 20px, $separator: comma); // 10px, 20px
@debug list.join((blue, red), (#abc, #def), $separator: space); // blue red #abc #def
@debug list.join([10px], 20px); // [10px 20px]
@debug list.join(10px, 20px, $bracketed: true); // [10px 20px]

Sass语法

@debug list.join(10px 20px, 30px 40px)  // 10px 20px 30px 40px
@debug list.join((blue, red), (#abc, #def))  // blue, red, #abc, #def
@debug list.join(10px, 20px)  // 10px 20px
@debug list.join(10px, 20px, comma)  // 10px, 20px
@debug list.join((blue, red), (#abc, #def), space)  // blue red #abc #def
@debug list.join([10px], 20px)  // [10px 20px]
@debug list.join(10px, 20px, $bracketed: true)  // [10px 20px]
list.length($list)
length($list) //=> number 

返回的长度  $list

这也可以返回映射中的对数。

SCSS  语法

@debug list.length(10px); // 1
@debug list.length(10px 20px 30px); // 3
@debug list.length((width: 10px, height: 20px)); // 2

Sass语法

@debug list.length(10px)  // 1
@debug list.length(10px 20px 30px)  // 3
@debug list.length((width: 10px, height: 20px))  // 2
list.separator($list)
list-separator($list) //=> unquoted string 

返回分隔符的名称使用$list,无论是space或  comma

如果$list没有分隔符,则返回  space

SCSS  语法

@debug list.separator(1px 2px 3px); // space
@debug list.separator(1px, 2px, 3px); // comma
@debug list.separator('Helvetica'); // space
@debug list.separator(()); // space

Sass语法

@debug list.separator(1px 2px 3px)  // space
@debug list.separator(1px, 2px, 3px)  // comma
@debug list.separator('Helvetica')  // space
@debug list.separator(())  // space
list.nth($list, $n)
nth($list, $n) 

返回$listat index 的元素$n

如果$n为负,则从开始$list。如果index处没有元素,则会引发错误  $n

SCSS  语法

@debug list.nth(10px 12px 16px, 2); // 12px
@debug list.nth([line1, line2, line3], -1); // line3

Sass语法

@debug list.nth(10px 12px 16px, 2)  // 12px
@debug list.nth([line1, line2, line3], -1)  // line3
list.set-nth($list, $n, $value)
set-nth($list, $n, $value) //=> list 

返回索引$list的元素替换  为的的副本。 $n$value

如果$n为负,则从开始$list。如果index处没有现有元素,则会引发错误  $n

SCSS  语法

@debug list.set-nth(10px 20px 30px, 1, 2em); // 2em 20px 30px
@debug list.set-nth(10px 20px 30px, -1, 8em); // 10px, 20px, 8em
@debug list.set-nth((Helvetica, Arial, sans-serif), 3, Roboto); // Helvetica, Arial, Roboto

Sass语法

@debug list.set-nth(10px 20px 30px, 1, 2em); // 2em 20px 30px
@debug list.set-nth(10px 20px 30px, -1, 8em); // 10px, 20px, 8em
@debug list.set-nth((Helvetica, Arial, sans-serif), 3, Roboto); // Helvetica, Arial, Roboto
list.zip($lists...)
zip($lists...) //=> list 

将每个列表合并$lists为一个子列表。

返回列表中的每个元素都包含中该位置的所有元素$lists。返回的列表与中的最短列表一样长  $lists

返回的列表始终以逗号分隔,子列表始终以空格分隔。

SCSS  语法

@debug list.zip(10px 50px 100px, short mid long); // 10px short, 50px mid, 100px long
@debug list.zip(10px 50px 100px, short mid); // 10px short, 50px mid

Sass语法

@debug list.zip(10px 50px 100px, short mid long)  // 10px short, 50px mid, 100px long
@debug list.zip(10px 50px 100px, short mid)  // 10px short, 50px mid