img

Введение в SASS: препроцессор CSS

SASS – это препроцессор CSS. Он используется для обработки сложного синтаксиса CSS перед компиляцией и рендерингом элементов на веб-странице. SASS упрощает процесс написания программного кода и делает его более эффективным.

icon strelka icons icons

узнай больше на курсе

Python программист с нуля
Стань разработчиком на одном из самых популярных языков программирования - Python
Подробнее о курсе
Java-разработчик с нуля
Освойте backend-разработку и программирование на Java, фреймворки Spring и Maven, работу с базами данных и API
Подробнее о курсе
C# разработчик с нуля
На курсе ты освоишь основы программирования на C#, включая синтаксис, объектно-ориентированное программирование и асинхронное программирование.
Подробнее о курсе

В этой статье вы найдете все, что вам нужно знать о SASS. Давайте начнем с определения того, что такое препроцессор CSS.

Что такое препроцессор CSS?

Препроцессор CSS – это что-то наподобие компилятора, который помогеют вам скомпилировать CSS-код, исходя из своего собственного уникального синтаксиса. Это значит, что вы можете написать код с помощью синтаксиса препроцессора, и он сгенерирует CSS-код на его основе. В большинстве случаев HTML-файлы ссылаются на такие CSS-файлы, чтобы выполнить оформление веб-страницы. 

Для того, чтобы использовать препроцессоры CSS, вам не нужно изучать новый язык. Вы можете писать код так же как делали это на языке CSS. Кроме того, с помощью препроцессоров вы сможете сделать гораздо больше. Например, вы сможете создавать переменные и использовать их в коде многократно. Также вы сможете опустить в коде фигурные скобки и точки с запятой. Проще говоря, препроцессоры CSS помогают упростить процесс написания кода.

У CSS есть несколько препроцессоров. Однако именно SASS становится все более и более популярным среди веб-разработчиков. Давайте узнаем больше о том, что такое SASS.

Что такое SASS?

SASS расшифровывается как «Syntactically Awesome Style Sheets». SASS – это препроцессор CSS. SASS-код обрабатывается программой и компилируется в CSS-код, который уже может быть использован для оформления HTML-элементов. SASS контролирует то, как они будут отображаться на веб-странице.

Он совместим со всеми версиями CSS. Кроме того, у SASS есть разные функциональные возможности, например, создание переменных и вложенной структуры, импорт и т.д. Мы поговорим об этом чуть позже.

Синтаксис:

У SASS есть два разных синтаксиса: синтаксис с отступом и SCSS (Sassy CSS).

Как уже можно было понять из названия, синтаксис с отступом использует отступы, как в Python. Работая с синтаксисом с отступом, вы можете опускать фигурные скобки и точки с запятой.

Что же касается SCSS, это более новая версия, во многом похожая на CSS. В ней используются фигурные скобки для обозначения блоков кода и точки с запятой для разделения правил. 

Как работает SASS?

Препроцессор CSS работает следующим образом:

  • Вы пишите код на языке SASS.
  • SASS-код компилируется в CSS-код.
  • Вы добавляете этот CSS-код в HTML-файл.

Стало быть, вам нужны три файла: HTML, SASS и CSS.

Зачем нужен SASS?

Вы спросите, зачем нужно изучать SASS, если он такой же как CSS. Я отвечу, существует несколько причин (которые мы обсудим ниже), по которым SASS считается более эффективным для frontend-разработчиков. 

  • Структура

SASS-код гораздо более структурирован, нежели обычный CSS-код, а это значит, что вы можете выполнять те же операции, но количество кода будет меньше. Так что, этот критерий имеет довольно важное значение для крупных проектов, в частности, если в них задействованы несколько разработчиков. Структурированное оформление позволяет всем разработчикам четко понимать код, который пишут и выполняют другие люди. 

  • Простота

Изучение SASS не займет у вас много времени. Любой, кто знает CSS, может с легкостью изучить SASS, не тратя при этом огромных усилий и большого количества времени. 

  • Многократное использование

SASS предоставляет возможность многократного использования кода, чего нет в CSS. Таким образом, вы можете создавать переменные и блоки кода, которые разработчики смогут использовать в проекте повторно. В результате, снижается вероятность появления ошибок, а процесс внесения изменений в код, становится проще.

HTML-код для работы с SASS: примеры

Теперь, когда мы примерно представляем, что такое SASS и как он работает, давайте рассмотрим на примерах некоторые его функции. Для всех примеров в этой статье мы будем использовать вот этот HTML-код:

<!DOCTYPE html>

<html>

<link rel="stylesheet" href="mystyle.css">

<body>

    <div id="box1">

        <h1>Hello, Welcome to Simplilearn!</h1>

        <p>Here, you will learn about CSS and SASS.</p>

        <ul>

            <li>SASS</li>

            <li>CSS</li>

            <li>SCSS</li>

            <li>Programming Languages</li>

            <li>Courses</li>

        </ul>

    </div>

</body>

</html>

Результат:

SASS_CSS_1

Использование переменных в SASS

В SASS можно использовать переменные – все как в обычном языке программирования. С помощью этих переменных вы можете хранить информацию, которую затем сможете многократно использовать в коде. По сути, вы можете хранить в них любое значение CSS, например, шрифты, цвета, размеры и т.д. Определить переменную в SASS можно с помощью символа «$». Ниже приведен пример того, как можно использовать переменные в SASS.

SASS-код:

$font-stack: Times New Roman
$primary-color: #00FFFF
$pad: 10px
body
  font-family: $font-stack
  background-color: $primary-color
  padding: $pad

Наберите этот код в файле input.sass. Как только вы напишете код, он будет скомпилирован в CSS-код, который вы сможете сохранить в файле mystyle.css. Ниже показано, как будет выглядеть скомпилированный CSS-код.

CSS-код:

body {
  font-family: Times New Roman;
  background-color: #00FFFF;
  padding: 10px; }

При обработке SASS-файла значения, указанные в $font-stack и $primary-color, используются там, где упоминаются эти переменные. Затем этот CSS-файл будет использован HTML-файлом для получения следующего результата. 

Результат:

SASS_CSS_2.

Использование вложенной структуры в SASS

Использование вложенной структуры – это еще одна функциональная возможность SASS, навеянная HTML. Набирая HTML-код, вы четко видите вложенную систему кода. Это помогает наглядно видеть иерархию кода. Однако у CSS такой функции нет. SASS же позволяет вложенным селекторам обеспечивать аналогичную визуальную иерархию. Ниже приведен код, который использует вложенную структуру с приведенным выше HTML-кодом.

SASS-код:

$font: Calibri
$pad: 15px
$bgcolor: #00FFFF
$color1: #FF0000
$color2: #FFFF00
body
    background-color: $bgcolor
    #box1
        margin: 10px
        color: $color1
        h1
            font-family: Times New Roman
            color: $color2
        ul
            font-family: $font
            font-size: 15px
            li
                color: #800000

После того, как этот код будет скомпилирован, мы получим следующий CSS-код. 

CSS-код:

body {
  background-color: #00FFFF; }
  body #box1 {
    margin: 10px;
    color: #FF0000; }
    body #box1 h1 {
      font-family: Times New Roman;
      color: #FFFF00; }
    body #box1 ul {
      font-family: Calibri;
      font-size: 15px; }
      body #box1 ul li {
        color: #800000; }

Как вы можете видеть, SASS позволяет вкладывать код в селекторы и при этом не требует предоставления внешней ссылки на него. После того, как браузер запустит этот CSS-код вместе с HTML-файлом, мы получим вот такой результат.

Результат:

SASS_CSS_3

Использование частичных шаблонов в SASS

Файлы стилевого оформления могут стать слишком большими, и осуществить управление ими может оказаться не такой простой задачей.  Даже если вы используете SASS для того, чтобы структурировать свой код, большие файлы, так или иначе, приведут к немалому количеству ошибок. Решить эту проблему можно с помощью частичных шаблонов SASS.

Частичные шаблоны - это, по сути, фрагменты кода, которые вы можете написать в отдельном файле, но при этом не компилировать в CSS-код. В дальнейшем вы можете использовать эти файлы, добавляя их в какой-то другой SASS-файл. 

Для того, чтобы создать файл с частичным шаблоном, вам нужно добавить нижнее подчеркивание перед именем файла. Например, вы можете назвать файл так: _font.css.  Символ подчеркивания указывает SASS, что этот файл – это частичны шаблон SASS, и компилировать его не нужно. Кроме того, вы можете добавить в этот файл всю необходимую вам информацию и использовать ее в других SASS-файлах для его компиляции. Например, вы можете добавить в ваш файл _font.css всю информацию о шрифте, например, размер шрифта, семейство шрифтов, его цвет и т.д. А затем вы можете использовать этот файл в основном SASS-файле с помощью правила @use.

Использование импорта в SASS

Если вы хотите использовать в SASS частичные шаблоны, вы должны их вызвать в основном файле. Вы можете это сделать в SASS-файле с помощью правила @use. Например, для того, чтобы вызвать файл _font.css, вы можете написать следующее: @use ‘font’. Таким образом, вы импортируете всю информацию из частичного шаблона и сможете использовать ее в основном файле. 

Использование миксинов в SASS

Миксины (или примеси) – это переменные, которые используются для хранения не просто одного значения, а целых блоков кода. Стало быть, если вы хотите использовать одно и тоже оформление для нескольких элементов, вы можете использовать миксины. Для того, чтобы создать набор кода, вам понадобиться директива @mixin, а для использования кода, добавленного в миксин, - правило @include.  Ниже приведен пример миксина для оформления шрифта. Мы создадим миксин font_details и укажем в нем значения для оформления элементов в нашем HTML-коде. 

Пример:

SASS-код:

$fs: 20px
$bgcolor: #00ffff
$pd: 20px 35px
@mixin font_details()
font-family: Georgia
  font-size: $fs
  background-color: $bgcolor
#box1
  @include font_details()
  padding: $pd

Скомпилировав программу, мы получим следующий CSS-код:

#box1 {
   font-family: Georgio;
   font-size: 20px;
   background-color: #00ffff;
   padding: 20px 35px; }

А запустив этот код вместе с нашим HTML-кодом (см. начало), мы получим следующий результат:

SASS_CSS_4

Кроме того, вы можете создать миксины, которые можно изменять. Для начала вы должны объявить их вместе с переменными, а определить вы их должны уже при использовании в коде. Например, наряду с миксионом font_details, мы создадим отдельные миксины h1_style и list_style с переменными и определим их при использовании кода. 

Пример: 

SASS-код:

$fs: 20px
$bgcolor: #00ffff
$pd: 20px 35px
@mixin font_details()
font-family: Georgio
font-size: $fs
background-color: $bgcolor
@mixin h1_style($size, $color)
font-size: $size
  color: $color
@mixin list_style($size, $font)
  font-size: $size
  font-family: $font
#box1
  @include font_details()
  padding: $pd
  h1
   @include h1_style(30px, #ff0000)
  ul
   @include list_style(15px, Times New Roman)

Скомпилировав этот код, мы получим следующий CSS-код:

#box1 {
   font-family: Georgio;
   font-size: 20px;
   background-color: #00ffff;
   padding: 20px 35px; }
   #box1 h1 {
     font-size: 30px;
     color: #ff0000; }
   #box1 ul {
    font-size: 15px;
     font-family: Times New Roman; }

Когда мы запустим этот CSS-код вместе с нашим HTML-файлом, мы получим следующий результат:

SASS_CSS_5

Использование наследования в SASS

С помощью функции SASS @extend вы можете использовать несколько свойств для разных селекторов; выполнить это действие поможет класс placeholder (заполнитель). Этот класс будет выполняться только при наследовании. Воспользовавшись правилом @extend, вы можете наследовать любые селекторы CSS. Здесь мы рассмотрим пример наследования функций создания и оформления рамок для каждого селектора в нашем HTML-коде. 

Пример: 

SASS-код:

// This CSS will print because we will extend it. { // Этот CSS-код будет задействован, так как мы его будем использовать. }
%border_style
  border: 5px solid #00ffff
  padding: 25px
// This CSS won't print because we will never extend it. { // Этот CSS-код не будет задействован, так как мы не будем его нигде использовать. }
%wont-print
  display: flex
  margin: 20px
body
  @extend %border_style
  #box1
    @extend %border_style
    border-color: #ff0000
    h1
      @extend border_style
      border-color: #00ff00
    ul
      @extend border_style
      border-color: #0000ff

Этот код скомпилируется в следующий CSS-код:

body, body #box1 {
  border: 7px solid #00ffff;
  padding: 30px; }
body #box1 {
  border-color: #ff0000; }
  body #box1 h1 {
    border-color: #00ff00; }
  body #box1 ul {
    border-color: #0000ff; }

А запустив файл с этим CSS-кодом вместе с нашим файлом index.html, мы получим следующий результат:

SASS_CSS_6

Использование операторов в SASS

С помощью операторов SASS вы можете выполнять математические вычисления для оформления веб-страниц. Допустим, что вам нужно работать с элементом, размер которого фиксированный. В таком случае операторы, например, +, -, *, % и math.div(), помогут преобразовать пиксельные значения в проценты для того, чтобы упростить вычисления макетов. 

Заключение

Вы можете использовать SASS для самых разных целей. Вам нужно просто установить препроцессор, и вы сможете пользоваться всеми его возможностями. Возможно, вы уже заметили, что SASS-код идентичен CSS-коду, за исключением фигурных скобок и точек в запятой. Эта особенность делает этот код более понятным и структурированным. Использование SASS или других препроцессоров избавит вас от мучений с CSS. Однако, прежде чем переходить к работе в SASS, все же рекомендуется изучить все основы CSS, чтобы хорошо понять его концепцию. 

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

Python программист с нуля
Стань разработчиком на одном из самых популярных языков программирования - Python
Подробнее о курсе
Java-разработчик с нуля
Освойте backend-разработку и программирование на Java, фреймворки Spring и Maven, работу с базами данных и API
Подробнее о курсе
C# разработчик с нуля
На курсе ты освоишь основы программирования на C#, включая синтаксис, объектно-ориентированное программирование и асинхронное программирование.
Подробнее о курсе
Фронтенд-разработчик с нуля
Погрузитесь в мир веб-разработки, освоив основные инструменты работы: HTML, CSS, JavaScript
Подробнее о курсе
Разработка приложений на Flutter и Dart
Научись создавать кроссплатформенные приложения на Flutter, освой язык Dart
Подробнее о курсе
Автоматизированное тестирование на Python
Изучите автоматизацию тестирования на Python чтобы стать востребованным специалистом
Подробнее о курсе
Еще по теме:
img
А что если мы скажем, что есть способы легко и без боли начать программировать? А потом стать крутым разработчиком, работать в свободном графике и в любое время кушать питсу? Подробнее в статье!
img
Делаем код-ревью корректно - с уважением, эффективностью и улучшением качества, не раздражая коллег
img
Java 21 имеет ряд улучшений в производительности и синтаксисе, однако есть подводные камни. В статье расскажем все о рисках и как сделать миграцию безболезненной
img
Готов узнать что такое gRPC, как работает и для чего нужно? Не, не, это не GPRS, не путай! А ещё расскажем про Protobuf!
img
React - это популярная Javascript библиотека для создания интерфейсов. Узнай, почему её выбирают миллионы девелоперов по всему миру
ЛЕТНИЕ СКИДКИ
30%
40%
50%
До конца акции: 30 дней 24 : 59 : 59