Списки
- Dart Sass
- ✓
- LibSass
- since 3.5.0
- Ruby Sass
- since 3.5.0
Списки содержат последовательность других значений. В Sass элементы в списках могут быть разделены запятыми (Helvetica, Arial, sans-serif
), пробелами (10px 15px 0 0
) или косой чертой, если это согласуется со списком. В отличие от большинства других языков, списки в Sass не требуют специальных скобок; любые выражения, разделенные пробелами или запятыми, считаются списком. Однако вы можете писать списки в квадратных скобках ([line1 line2]
), что полезно при использовании grid-template-columns
.
Списки Sass могут содержать один или даже ноль элементов. Одноэлементный список может быть записан как (<expression>,)
или [<expression>]
, а список без элементов может быть записан как ()
или []
. Кроме того, все функции списка будут обрабатывать отдельные значения, которых нет в списках, как если бы они были списками, содержащими это значение, что означает, что вам редко нужно явно создавать одноэлементные списки.
⚠️ Внимание!
Пустые списки без скобок не являются допустимым CSS, поэтому Sass не позволит вам использовать их в значении свойства.
Списки, разделенные косой чертой permalinkСписки, разделенные косой чертой
Списки в Sass могут быть разделены косой чертой для представления таких значений, как сокращение font: 12px/30px
для установки font-size
и line-height
или синтаксиса hsl(80 100% 50% / 0.5)
для создания цвета с заданным значением непрозрачности. Однако списки, разделенные косой чертой, в настоящее время не могут быть записаны буквально. Sass исторически использовал символ /
для обозначения деления, поэтому существующие таблицы стилей переходят на использование списков, разделенных косой чертой math.div()
может быть записано только с использованием list.slash()
.
Для получения дополнительной информации смотрите Критическое изменение: слэш как разделение.
Использование списков permalinkИспользование списков
Sass предоставляет несколько функций, которые позволяют использовать списки для написания мощных библиотек стилей или сделать таблицу стилей вашего приложения более чистой и удобной в обслуживании.
Индексы permalinkИндексы
Многие из этих функций принимают или возвращают числа, называемые индексами, которые относятся к элементам в списке. Индекс 1 указывает на первый элемент списка. Обратите внимание, что это отличается от многих языков программирования, где индексы начинаются с 0! Sass также упрощает обращение к концу списка. Индекс -1 относится к последнему элементу в списке, -2 относится к предпоследнему и так далее.
Доступ к элементу permalinkДоступ к элементу
Списки бесполезны, если вы не можете извлечь из них значения. Вы можете использовать функцию list.nth($list, $n)
, чтобы получить элемент по заданному индексу в списке. Первый аргумент - это сам список, а второй - индекс значения, которое вы хотите получить.
Сделайте что-нибудь для каждого элемента permalinkСделайте что-нибудь для каждого элемента
На самом деле здесь не используется функция, но это по-прежнему один из наиболее распространенных способов использования списков. Правило @each
оценивает блок стилей для каждого элемента в списке и назначает этот элемент переменной.
Добавить в список permalinkДобавить в список
Также полезно добавлять элементы в список. Функция list.append($list, $val)
принимает список и значение и возвращает копию списка со значением, добавленным в конец. Обратите внимание: поскольку списки Sass неизменяемые, они не изменяют исходный список.
Найти элемент в списке permalinkНайти элемент в списке
Если вам нужно проверить, находится ли элемент в списке или выяснить, по какому индексу он находится, используйте функцию list.index($list, $value)
. Он принимает список и значение, которое нужно найти в этом списке, и возвращает индекс этого значения.
Если значение отсутствует в списке, list.index()
возвращает null
. Поскольку null
равен falsey, вы можете использовать list.index()
с @if
или if()
, чтобы проверить, соответствует ли список содержат заданное значение.
Неизменность permalinkНеизменность
Списки в Sass неизменяемы, что означает, что содержимое значения списка никогда не изменяется. Все функции списков Sass возвращают новые списки, а не изменяют исходные. Неизменяемость помогает избежать множества скрытых ошибок, которые могут закрасться, когда один и тот же список используется в разных частях таблицы стилей.
Однако вы все равно можете обновлять свое состояние с течением времени, назначая новые списки той же переменной. Это часто используется в функциях и миксинах для сбора группы значений в один список.
Списки аргументов permalinkСписки аргументов
Когда вы объявляете миксин или функцию, которая принимает произвольные аргументы, вы получаете значение в виде специального списка, известного как список аргументов. Он действует так же, как список, содержащий все аргументы, переданные в миксин или функцию, с одной дополнительной функцией: если пользователь передал аргументы ключевого слова, к ним можно получить доступ как к карте, передав список аргументов в функцию meta.keywords()
.