Списки
- 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().