Обмен технологиями

Сасс и SCSS

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Sass и SCSS — это два синтаксиса Sass (синтаксически удивительные таблицы стилей). Оба они используются для написания более структурированного и удобного в обслуживании CSS. Вот их основные сравнения синтаксиса и функций:

1. Грамматический формат

Sass (синтаксис отступов)

  • никаких фигурных скобок {} и точка с запятой;
  • Используйте отступы для обозначения вложенности и иерархических связей.
nav
  ul
    margin: 0
    padding: 0
  li
    display: inline-block
    margin-right: 5px
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

SCSS (дерзкий CSS)

  • Аналогично стандартному CSS, с использованием фигурных скобок. {} и точка с запятой;
  • Совместим со всем существующим кодом CSS.
nav {
  ul {
    margin: 0;
    padding: 0;
  }
  li {
    display: inline-block;
    margin-right: 5px;
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2. Переменные

Оба поддерживают переменные и имеют одинаковый синтаксис:

$primary-color: #333;

nav {
  color: $primary-color;
}
  • 1
  • 2
  • 3
  • 4
  • 5

3. Вложение

Оба поддерживают вложение, но в Sass для вложения используются отступы, а в SCSS — фигурные скобки:

// Sass
nav
  ul
    margin: 0
    padding: 0

// SCSS
nav {
  ul {
    margin: 0;
    padding: 0;
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

4. Миксеры

Определение и вызов микшера одинаковы в обоих случаях:

@mixin border-radius($radius) {
  -webkit-border-radius: $radius;
     -moz-border-radius: $radius;
      -ms-border-radius: $radius;
          border-radius: $radius;
}

.box { @include border-radius(10px); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

5. Интерполяция

Интерполяция используется одинаково в обоих случаях:

$side: left;
.margin-#{$side} {
  margin-#{$side}: 10px;
}
  • 1
  • 2
  • 3
  • 4

6. Эксплуатация

Оба поддерживают операции в стилях:

.container {
  width: 100% - 20px;
}
  • 1
  • 2
  • 3

7. Наследование

Оба поддерживают наследование стилей:

.message {
  border: 1px solid #ccc;
  padding: 10px;
  color: #333;
}

.success {
  @extend .message;
  border-color: green;
}

.error {
  @extend .message;
  border-color: red;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Я добавлю их сюда в следующий раз, когда буду использовать их в своем проекте!