HTML Diff
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>