0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Помимо простых типов данных, таких как числа, булевые значения и другие, изученных в прошлых уроках, SASS предоставляет еще 2 типа данных:</p>
1
<p>Помимо простых типов данных, таких как числа, булевые значения и другие, изученных в прошлых уроках, SASS предоставляет еще 2 типа данных:</p>
2
<ul><li>Списки (list);</li>
2
<ul><li>Списки (list);</li>
3
<li>Ассоциативные массивы (map).</li>
3
<li>Ассоциативные массивы (map).</li>
4
</ul><p>Эти типы данных называются<em>сложными</em>, так как имеют свою внутреннюю структуру, с которой мы можем работать. Данные типы не сильно могут помочь сами по себе, но в связке с другими инструментами создают по-настоящему удобные конструкции, которыми вы можете пользоваться.</p>
4
</ul><p>Эти типы данных называются<em>сложными</em>, так как имеют свою внутреннюю структуру, с которой мы можем работать. Данные типы не сильно могут помочь сами по себе, но в связке с другими инструментами создают по-настоящему удобные конструкции, которыми вы можете пользоваться.</p>
5
<h2>Списки</h2>
5
<h2>Списки</h2>
6
<p>Списки являются самыми "простыми" из сложных структур. На самом деле вы с ними уже встречались, но не знали об этом. Почти любая строка в<em>SASS</em>является списком. Посмотрим на пример ниже:</p>
6
<p>Списки являются самыми "простыми" из сложных структур. На самом деле вы с ними уже встречались, но не знали об этом. Почти любая строка в<em>SASS</em>является списком. Посмотрим на пример ниже:</p>
7
<p>Значение внутри переменной $main-font не что иное, как список. И в этом легко убедиться! В составе препроцессора<em>SASS</em>существуют специальные функции, которые позволяют нам работать со списками. Одной из таких функций является nth(). С помощью нее мы можем узнать значение списка по его индексу.</p>
7
<p>Значение внутри переменной $main-font не что иное, как список. И в этом легко убедиться! В составе препроцессора<em>SASS</em>существуют специальные функции, которые позволяют нам работать со списками. Одной из таких функций является nth(). С помощью нее мы можем узнать значение списка по его индексу.</p>
8
<p><strong>Важно:</strong>списки в SASS нумеруются с единицы. Это отличается от привычных индексов и может создать некоторые неудобства тем, кто знаком с другими языками программирования</p>
8
<p><strong>Важно:</strong>списки в SASS нумеруются с единицы. Это отличается от привычных индексов и может создать некоторые неудобства тем, кто знаком с другими языками программирования</p>
9
<p>Списки могут задаваться и в другом синтаксисе. Для этого весь список оборачивается в круглые скобки, а между элементами ставится запятая или пробел. Это значит, что пример с переменной $main-font можно записать так:</p>
9
<p>Списки могут задаваться и в другом синтаксисе. Для этого весь список оборачивается в круглые скобки, а между элементами ставится запятая или пробел. Это значит, что пример с переменной $main-font можно записать так:</p>
10
<p>В процессе прохождения курса, да и в работе, вы будете встречать разные типы написания списков. Такое разнообразие может запутать, но оно помогает лаконичнее писать код. Помните, что какой бы способ записи списка не использовался, для него доступны одни и те же функции.</p>
10
<p>В процессе прохождения курса, да и в работе, вы будете встречать разные типы написания списков. Такое разнообразие может запутать, но оно помогает лаконичнее писать код. Помните, что какой бы способ записи списка не использовался, для него доступны одни и те же функции.</p>
11
<p>Попробуем создать класс font-roboto, который установит шрифт Roboto для нужного нам элемента. Для этого, с помощью функции nth() возьмем второй элемент списка.</p>
11
<p>Попробуем создать класс font-roboto, который установит шрифт Roboto для нужного нам элемента. Для этого, с помощью функции nth() возьмем второй элемент списка.</p>
12
<p>Результатом компиляции станет следующий<em>CSS</em>код:</p>
12
<p>Результатом компиляции станет следующий<em>CSS</em>код:</p>
13
<p>Таким образом мы можем задавать некоторые значения не в переменных, а в списке, чтобы потом использовать их внутри нашего<em>SASS</em>файла.</p>
13
<p>Таким образом мы можем задавать некоторые значения не в переменных, а в списке, чтобы потом использовать их внутри нашего<em>SASS</em>файла.</p>
14
<p>Результатом компиляции станет следующий<em>CSS</em>код:</p>
14
<p>Результатом компиляции станет следующий<em>CSS</em>код:</p>
15
<p>Как видно, списки позволяют чуть удобнее структурировать информацию и избежать лишних переменных там, где они не нужны.</p>
15
<p>Как видно, списки позволяют чуть удобнее структурировать информацию и избежать лишних переменных там, где они не нужны.</p>
16
<p>Помимо выбора элемента из списка мы можем добавлять новые значения в существующий список. Это делается с помощью функции join(). Функция принимает список и значения, которые необходимо добавить.</p>
16
<p>Помимо выбора элемента из списка мы можем добавлять новые значения в существующий список. Это делается с помощью функции join(). Функция принимает список и значения, которые необходимо добавить.</p>
17
<p>Теперь в переменной $theme-colors лежит список из всех доступных нам цветов.</p>
17
<p>Теперь в переменной $theme-colors лежит список из всех доступных нам цветов.</p>
18
<p>Если же мы хотим добавить один элемент в существующий список, то для этого существует функция append(). Функция принимает список и элемент, который мы хотим добавить.</p>
18
<p>Если же мы хотим добавить один элемент в существующий список, то для этого существует функция append(). Функция принимает список и элемент, который мы хотим добавить.</p>
19
<h2>Ассоциативные массивы</h2>
19
<h2>Ассоциативные массивы</h2>
20
<p>Наиболее важной структурой данных в<em>SASS</em>являются ассоциативные массивы. Такие массивы содержат в себе не просто значения, как списки, а пары ключ: значение. Это помогает более наглядно работать с массивами значений и делать выборку не по их индексу, а по ключу.</p>
20
<p>Наиболее важной структурой данных в<em>SASS</em>являются ассоциативные массивы. Такие массивы содержат в себе не просто значения, как списки, а пары ключ: значение. Это помогает более наглядно работать с массивами значений и делать выборку не по их индексу, а по ключу.</p>
21
<p>Ассоциативный массив записывается очень просто. Представим, что у нас есть шрифт, который поддерживает все доступные значения свойства font-weight. Мы хотим использовать не стандартные вариации normal и bold, а использовать цифровые значения. На списках это выглядело бы следующим образом:</p>
21
<p>Ассоциативный массив записывается очень просто. Представим, что у нас есть шрифт, который поддерживает все доступные значения свойства font-weight. Мы хотим использовать не стандартные вариации normal и bold, а использовать цифровые значения. На списках это выглядело бы следующим образом:</p>
22
<p>Скорее всего, вам нужно будет постоянно возвращаться к инициализации списка, чтобы вспомнить, какой индекс соответствует нужному сейчас значению. Не очень удобно. Превратим наш список в ассоциативный массив. Для этого необходимо взять список в круглые скобки, и внутри указывать пары ключ-значение.</p>
22
<p>Скорее всего, вам нужно будет постоянно возвращаться к инициализации списка, чтобы вспомнить, какой индекс соответствует нужному сейчас значению. Не очень удобно. Превратим наш список в ассоциативный массив. Для этого необходимо взять список в круглые скобки, и внутри указывать пары ключ-значение.</p>
23
<p>Чтобы выбрать значение по ключу, используется функция map.get(), аргументами которой являются ассоциативный массив и ключ, значение которого необходимо получить. Для работы функции map.get() и других, которые указываются через конструкцию map., необходимо указать строчку @use "sass:map". Это подключит все необходимые функции к нашему проекту.</p>
23
<p>Чтобы выбрать значение по ключу, используется функция map.get(), аргументами которой являются ассоциативный массив и ключ, значение которого необходимо получить. Для работы функции map.get() и других, которые указываются через конструкцию map., необходимо указать строчку @use "sass:map". Это подключит все необходимые функции к нашему проекту.</p>
24
<p>В результате получится следующий код:</p>
24
<p>В результате получится следующий код:</p>
25
<p>После компиляции получится следующий<em>CSS</em>код:</p>
25
<p>После компиляции получится следующий<em>CSS</em>код:</p>
26
<p>Для добавления нового значения в ассоциативный массив или объединения двух разных массивов используется функция map.merge(). Ее работа схожа с функцией join() у списков.</p>
26
<p>Для добавления нового значения в ассоциативный массив или объединения двух разных массивов используется функция map.merge(). Ее работа схожа с функцией join() у списков.</p>
27
<p>В результате массив $theme-colors будет иметь следующие значения:</p>
27
<p>В результате массив $theme-colors будет иметь следующие значения:</p>
28
<p><strong>Важно: если в двух ассоциативных массивах содержатся одинаковые ключи, то будет выбрано значение, которое было последним</strong>. Заменим ключ purple на primary. Этот ключ также содержится в массиве $main-colors. После использования map.merge() массив $theme-colors будет выглядеть следующим образом:</p>
28
<p><strong>Важно: если в двух ассоциативных массивах содержатся одинаковые ключи, то будет выбрано значение, которое было последним</strong>. Заменим ключ purple на primary. Этот ключ также содержится в массиве $main-colors. После использования map.merge() массив $theme-colors будет выглядеть следующим образом:</p>
29
29