НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
Sass. W3Schools українською. Уроки для початківців

En

Sass @mixin та @include


Sass Міксини

Директива @mixin дозволяє створювати CSS-код, який повторно використовуватиметься на вебсайті.

Директива @include створена, щоб дозволити вам використовувати (включати) міксин.


Визначення міксина

Міксин визначається за допомогою директиви @mixin.

Синтаксис Sass @mixin:

@mixin назва {
  властивість: значення;
  властивість: значення;
  ...
}

У наступному прикладі створюється міксин з назвою "important-text":

SCSS Синтаксис:

@mixin important-text {
  color: red;
  font-size: 25px;
  font-weight: bold;
  border: 1px solid blue;
}

Підказка: Порада про дефіси та підкреслення в SASS: дефіси та підкреслення вважаються однаковими. Це означає, що important-text { } та @mixin important_text { } розглядаються як той самий міксин!


Використання міксину

Директива @include використовується для включення міксину.

Синтаксис Sass @include міксину:

selector {
  @include mixin-name;
}

Отже, включити міксин important-text, створений вище:

SCSS Синтаксис:

.danger {
  @include important-text;
  background-color: green;
}

SASS транспілер перетворить вищезазначене у звичайний CSS:

CSS виведення:

.danger {
  color: red;
  font-size: 25px;
  font-weight: bold;
  border: 1px solid blue;
  background-color: green;
}
Run Example »

Міксин може також включати інші міксини:

SCSS Синтаксис:

@mixin special-text {
  @include important-text;
  @include link;
  @include special-border;
}

Передача змінних до міксина

Міксини приймають аргументи. Таким чином ви можете передати змінні до міксина.

Ось як визначити міксин з аргументами:

SCSS Синтаксис:

/* Визначити міксин з двома аргументами */
@mixin bordered($color, $width) {
  border: $width solid $color;
}

.myArticle {
  @include bordered(blue, 1px);  // Викликати міксин з двома значеннями
}

.myNotes {
  @include bordered(red, 2px); // Викликати міксин з двома значеннями
}

Зауважте, що аргументи встановлюються як змінні, а потім використовуються як значення (колір і ширина) властивості border.

Після компіляції CSS буде виглядати так:

CSS Виведення:

.myArticle {
  border: 1px solid blue;
}

.myNotes {
  border: 2px solid red;
}
Спробуйте самі »

Значення за замовчуванням для міксину

Можна також визначити значення за замовчуванням для змінних міксинів:

SCSS Синтаксис:

@mixin bordered($color: blue, $width: 1px) {
  border: $width solid $color;
}

Тоді вам потрібно лише вказати значення, які змінюються, коли ви включаєте міксин:

SCSS Синтаксис:

.myTips {
  @include bordered($color: orange);
}

Використання міксину для префіксів постачальників

Ще одне гарне використання міксина - це префікси постачальників.

Ось приклад для перетворення:

SCSS Синтаксис:

@mixin transform($property) {
  -webkit-transform: $property;
  -ms-transform: $property;
  transform: $property;
}

.myBox {
  @include transform(rotate(20deg));
}

Після компіляції CSS буде виглядати так:

CSS виведення:

.myBox {
  -webkit-transform: rotate(20deg);
  -ms-transform: rotate(20deg);
  transform: rotate(20deg);
}