0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>При создании сложного SASS-файла неизбежно возникают различные типы значений: числа, строки и некоторые другие. В этом уроке мы рассмотрим базовые простые типы данных, с которых удобнее всего начинать свою работу с SASS.</p>
1
<p>При создании сложного SASS-файла неизбежно возникают различные типы значений: числа, строки и некоторые другие. В этом уроке мы рассмотрим базовые простые типы данных, с которых удобнее всего начинать свою работу с SASS.</p>
2
<p>К простым типам данных относятся:</p>
2
<p>К простым типам данных относятся:</p>
3
<ol><li>Числа</li>
3
<ol><li>Числа</li>
4
<li>Строки</li>
4
<li>Строки</li>
5
<li>Булевый тип</li>
5
<li>Булевый тип</li>
6
</ol><p>Числа можно назвать одним из самых простых типов данных в SASS. Мы их встречали постоянно на протяжении прошлого курса по SASS. Число в препроцессоре состоит из самого значения и единицы измерения.</p>
6
</ol><p>Числа можно назвать одним из самых простых типов данных в SASS. Мы их встречали постоянно на протяжении прошлого курса по SASS. Число в препроцессоре состоит из самого значения и единицы измерения.</p>
7
<p>Взглянем на простой пример:</p>
7
<p>Взглянем на простой пример:</p>
8
<p>В переменную $number мы положили числовой тип данных.<em>30</em>является непосредственно значением, а<em>px</em>являются единицей измерения. Единицы измерения может и не быть, тогда от числа останется только значение. Это помогает при работе с арифметическими операциями.</p>
8
<p>В переменную $number мы положили числовой тип данных.<em>30</em>является непосредственно значением, а<em>px</em>являются единицей измерения. Единицы измерения может и не быть, тогда от числа останется только значение. Это помогает при работе с арифметическими операциями.</p>
9
<p>Какие арифметические операции доступны с числами в SASS? Точно такие же, как и в реальной жизни. Мы можем складывать, вычитать, умножать, делить числа, а также брать остаток от деления. Если у вас есть опыт работы с любым языком программирования, то эти простейшие операции не вызовут у вас затруднений.</p>
9
<p>Какие арифметические операции доступны с числами в SASS? Точно такие же, как и в реальной жизни. Мы можем складывать, вычитать, умножать, делить числа, а также брать остаток от деления. Если у вас есть опыт работы с любым языком программирования, то эти простейшие операции не вызовут у вас затруднений.</p>
10
<p>Применим основные операции в SASS. Для этого советую воспользоваться интерактивным режимом, который доступен в консоли после установки SASS в вашу систему. Подробнее об этом вы можете почитать в уроке, посвященном<a>установке SASS</a>.</p>
10
<p>Применим основные операции в SASS. Для этого советую воспользоваться интерактивным режимом, который доступен в консоли после установки SASS в вашу систему. Подробнее об этом вы можете почитать в уроке, посвященном<a>установке SASS</a>.</p>
11
<p>Остановимся на умножении отдельно. Вы можете заметить, что в результате выполнения операции 10px * 10px вместо 100px мы получили невнятные 100px*px. Такое значение точно не понравится CSS, потому что единиц измерения px*px (или пиксель в квадрате) в стандарте не существует. Но может компилятор SASS сам поймет, что мы хотели и переведет это в просто пиксели. Проверим это, создав небольшой кусок SASS кода.</p>
11
<p>Остановимся на умножении отдельно. Вы можете заметить, что в результате выполнения операции 10px * 10px вместо 100px мы получили невнятные 100px*px. Такое значение точно не понравится CSS, потому что единиц измерения px*px (или пиксель в квадрате) в стандарте не существует. Но может компилятор SASS сам поймет, что мы хотели и переведет это в просто пиксели. Проверим это, создав небольшой кусок SASS кода.</p>
12
<p>Попробуем скомпилировать, на что получим закономерный ответ, который мы и так знали:</p>
12
<p>Попробуем скомпилировать, на что получим закономерный ответ, который мы и так знали:</p>
13
<p>Компилятор нам сообщает, что такое значение "невалидно" для CSS и прервет компиляцию. Что же это значит? На самом деле компилятор работает по простым правилам математики из реальной жизни. То есть перемножаются и значение и единица измерения. Умножив 10 метров на 10 метров мы получим 100 квадратных метров. Значит или одно из чисел не должно иметь единицу измерения, или единица измерения поставится позже. С этим мы познакомимся при работе со строками.</p>
13
<p>Компилятор нам сообщает, что такое значение "невалидно" для CSS и прервет компиляцию. Что же это значит? На самом деле компилятор работает по простым правилам математики из реальной жизни. То есть перемножаются и значение и единица измерения. Умножив 10 метров на 10 метров мы получим 100 квадратных метров. Значит или одно из чисел не должно иметь единицу измерения, или единица измерения поставится позже. С этим мы познакомимся при работе со строками.</p>
14
<h2>Булевый тип</h2>
14
<h2>Булевый тип</h2>
15
<p>В математике и программировании булевым типом называется такой тип данных, который может иметь только одно из двух значений: правда или ложь. В SASS эти значения так и записываются: true и false.</p>
15
<p>В математике и программировании булевым типом называется такой тип данных, который может иметь только одно из двух значений: правда или ложь. В SASS эти значения так и записываются: true и false.</p>
16
<p>Зачем же нам иметь такой минимальный тип данных, который ни посчитать нельзя, ни арифметических операций с ним произвести невозможно? На самом деле булевый тип широко распространен и часто используется при создании условных конструкций. С ними мы познакомимся в одном из следующих уроков. А пока нужно просто держать в голове то, что существует такой магический булевый тип данных со всего двумя возможными значениями.</p>
16
<p>Зачем же нам иметь такой минимальный тип данных, который ни посчитать нельзя, ни арифметических операций с ним произвести невозможно? На самом деле булевый тип широко распространен и часто используется при создании условных конструкций. С ними мы познакомимся в одном из следующих уроков. А пока нужно просто держать в голове то, что существует такой магический булевый тип данных со всего двумя возможными значениями.</p>
17
<h2>Строки</h2>
17
<h2>Строки</h2>
18
<p>Строки - одна из центральных тем в SASS. С их помощью мы можем передавать аргументы в функции и миксины, генерировать уникальные классы для нашего проекта. По умолчанию SASS все считает строкой.</p>
18
<p>Строки - одна из центральных тем в SASS. С их помощью мы можем передавать аргументы в функции и миксины, генерировать уникальные классы для нашего проекта. По умолчанию SASS все считает строкой.</p>
19
<p>Для того, чтобы создать строку, используются одинарные ' ' или двойные " " кавычки. Вы можете выбирать это на свой вкус. Самое главное - закрывающая кавычка должна быть такого же типа, что и открывающая.</p>
19
<p>Для того, чтобы создать строку, используются одинарные ' ' или двойные " " кавычки. Вы можете выбирать это на свой вкус. Самое главное - закрывающая кавычка должна быть такого же типа, что и открывающая.</p>
20
<p>Если же мы используем разный тип кавычек, то интерпретатор запутается и, в конечном итоге, начнет на нас ругаться.</p>
20
<p>Если же мы используем разный тип кавычек, то интерпретатор запутается и, в конечном итоге, начнет на нас ругаться.</p>
21
<p>По ходу написания собственного SASS-кода старайтесь придерживаться одного типа кавычек. Такое единообразие облегчит чтение кода и может предотвратить некоторые ошибки.</p>
21
<p>По ходу написания собственного SASS-кода старайтесь придерживаться одного типа кавычек. Такое единообразие облегчит чтение кода и может предотвратить некоторые ошибки.</p>
22
<p>Строки в SASS мы можем складывать. Это помогает получить из нескольких разных строк одну единую. Такой процесс называется<em>конкатенацией</em>. Берутся две и более строки или строковые переменные и при помощи оператора + получается новая строка.</p>
22
<p>Строки в SASS мы можем складывать. Это помогает получить из нескольких разных строк одну единую. Такой процесс называется<em>конкатенацией</em>. Берутся две и более строки или строковые переменные и при помощи оператора + получается новая строка.</p>
23
<p>Помимо процесса<em>конкатенации</em>есть родственный ему процесс, который называется<em>интерполяцией</em>. В этом случае мы можем не просто добавить подстроку в строку, но и выполнить в этом процессе некоторое выражение. Например, подставить результат выполнения функции. В SASS это работает следующим образом: мы можем внутри любой строки указать конструкцию #{}, внутри которой возможно подставить значение любой переменной или даже целую функцию. Результат будет выведен внутри строки.</p>
23
<p>Помимо процесса<em>конкатенации</em>есть родственный ему процесс, который называется<em>интерполяцией</em>. В этом случае мы можем не просто добавить подстроку в строку, но и выполнить в этом процессе некоторое выражение. Например, подставить результат выполнения функции. В SASS это работает следующим образом: мы можем внутри любой строки указать конструкцию #{}, внутри которой возможно подставить значение любой переменной или даже целую функцию. Результат будет выведен внутри строки.</p>
24
<p>Пример выше при использовании<em>интерполяции</em>будет выглядеть следующим образом:</p>
24
<p>Пример выше при использовании<em>интерполяции</em>будет выглядеть следующим образом:</p>
25
<p>Такой процесс работы со строками более предпочтительный. Во-первых, мы изначально видим, что у нас строка. Во-вторых, такой способ избавляет нас от написания арифметических операций, что позволяет быстрее понимать процесс того, что происходит в коде.</p>
25
<p>Такой процесс работы со строками более предпочтительный. Во-первых, мы изначально видим, что у нас строка. Во-вторых, такой способ избавляет нас от написания арифметических операций, что позволяет быстрее понимать процесс того, что происходит в коде.</p>
26
<p>Отличным примером использования<em>интерполяции</em>является создание миксина, в котором имя класса или его часть передается в качестве аргумента миксина:</p>
26
<p>Отличным примером использования<em>интерполяции</em>является создание миксина, в котором имя класса или его часть передается в качестве аргумента миксина:</p>
27
<p>Здесь создается миксин, принимающий в качестве аргумента имя иконки. Это имя с помощью<em>интерполяции</em>подставляется в имя класса и в путь к иконке. Теперь возможно просто подключать этот миксин с нужными значениями и класс сгенерируется автоматически.</p>
27
<p>Здесь создается миксин, принимающий в качестве аргумента имя иконки. Это имя с помощью<em>интерполяции</em>подставляется в имя класса и в путь к иконке. Теперь возможно просто подключать этот миксин с нужными значениями и класс сгенерируется автоматически.</p>
28
<p>Также обратите внимание на запись width: #{$size}px;. В данном случае мы не указываем кавычки, так как значение свойства width должно указываться без них. Так как SASS все интерпретирует как строки, то такая запись даст нам ожидаемый результат.</p>
28
<p>Также обратите внимание на запись width: #{$size}px;. В данном случае мы не указываем кавычки, так как значение свойства width должно указываться без них. Так как SASS все интерпретирует как строки, то такая запись даст нам ожидаемый результат.</p>
29
<h2>Проверка типа</h2>
29
<h2>Проверка типа</h2>
30
<p>Зачастую полезно узнать тип данных, с которым мы работаем. Это может понадобиться при создании сложных функций, в которых для разных типов данных будет использован разный код.</p>
30
<p>Зачастую полезно узнать тип данных, с которым мы работаем. Это может понадобиться при создании сложных функций, в которых для разных типов данных будет использован разный код.</p>
31
<p>Чтобы узнать тип данных в переменной, используется функция type-of. Вы можете в любом месте своего<em>SASS</em>файла указать конструкцию @debug type-of(имя переменной) и при компиляции через терминал вам будет выведен тип переменной.</p>
31
<p>Чтобы узнать тип данных в переменной, используется функция type-of. Вы можете в любом месте своего<em>SASS</em>файла указать конструкцию @debug type-of(имя переменной) и при компиляции через терминал вам будет выведен тип переменной.</p>
32
<h2>Дополнительные материалы</h2>
32
<h2>Дополнительные материалы</h2>
33
<ul><li><a>Использование интерполяции внутри функций CSS</a></li>
33
<ul><li><a>Использование интерполяции внутри функций CSS</a></li>
34
</ul>
34
</ul>