Синтаксис Sass

По своему синтаксису Sass чрезвычайно похож на CSS, можно даже считать, что CSS выступает подмножеством Sass. Таким образом любой стилевой файл содержит корректный, с точки зрения Sass, синтаксис. Чтобы различать документы, Sass-файлы имеют расширение .scss.
Рассмотрим основные особенности синтаксиса Sass.

Базовый синтаксис

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

.overlay {
  display: block;
  background-color: rgba(78,79,72,.8);
  font-weight: bold;
  padding: 10px;
  color: white;
}

Здесь используется селектор класса с именем overlay, для него задано несколько свойств CSS определяющих вид элемента.

Переменные

Переменные или, правильнее сказать, константы, потому что они не меняют своё исходное значение, добавляют в код значения свойств, описанные ранее. Переменные начинаются со знака доллара ($).

$text-color: #fc0;

Далее вместо значения свойства мы просто подставляем имя константы.

.block {
  color: $text-color;
}

Вложения

При использовании вложенных селекторов мы пишем вначале один селектор, а затем через пробел другой (.block a). Такая конструкция говорит браузеру, что стиль следует применять только к селектору, находящемуся внутри первого. Например, для ссылок внутри элемента с классом block. Sass позволяет записать это правило более наглядно.

.block {
  color: $text-color;
   a {
	text-decoration: none;
  }
}

В результате мы получим такой стиль.

.block {
  color: #fc0;
}
.block a {
  text-decoration: none;
}

Использование @extend

Команда @extend расширяет стилевые правила у одного селектора, добавляя правила от другого селектора. При этом Sass делает всё грамотно — не повторяет одинаковые строки несколько раз, а группирует селекторы, сокращая и упрощая код CSS. Допустим, у нас есть два элемента, у которых разный цвет фона, остальные свойства при этом одинаковы. Мы описываем одинаковые свойства в селекторе .blue, а внутрь селектора .orange добавляем @extend .blue.

.blue {
  background: #66f;
  font-weight: bold;
  color: #fff;
}
.orange {
  @extend .blue;
  background: #f60;
}

Вот что получим на выходе. Селекторы .blue и .orange сгруппированы и к ним добавлены одинаковые для обоих селекторов свойства.

.blue, .orange {
  background: #66f;
  font-weight: bold;
  color: #fff;
}
.orange {
  background: #f60;
}

Примеси

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

@import "bourbon/bourbon";
footer {
  @include position(absolute, null 0 0 0);
}

На выходе будет следующий CSS.

footer {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
}

Автор и редакторы

Автор: Влад Мержевич
Последнее изменение: 13.02.2019
Редакторы: Влад Мержевич
Курс по вёрстке сайта на CSS Grid