img

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

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

 

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

В этой статье вы найдете все, что вам нужно знать о 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, чтобы хорошо понять его концепцию. 

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Программирование
Скидка 25%
Python-программист с нуля
Стань разработчиком на одном из самых популярных языков программирования.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Гипервизор - это программное обеспечение для виртуализации, используемое для создания и запуска виртуальных машин (ВМ). Гипервиз
img
Виртуализация серверов позволяет запускать несколько виртуальных машин на одном физическом сервере. Запуск виртуальных машин (ВМ
img
Сегодня мы рассмотрим, как настроить и использовать PHP в проекте. Но прежде чем начать, нужно понять, что такое PHP. Что такое
img
Как разработчик, вы знаете, что HTML расшифровывается как HyperText Markup Language (язык разметки гипертекста). HTML — это язык
img
Бесконечные споры вокруг искусственного интеллекта приводят к путанице. Существует много терминов, которые кажутся похожими, но
img
SVG расшифровывается как масштабируемая векторная графика. Это веб-дружелюбный векторный формат файлов, используемый для отображ
21 ноября
20:00
Бесплатный вебинар
Введение в Docker