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

En

Sass @extend та успадкування


Sass директива @extend

Директива @extend дозволяє поділитися набором властивостей CSS від одного селектора до іншого.

Директива @extend якщо у вас є елементи з майже ідентичним стилем, які відрізняються лише деякими дрібними деталями.

У наступному прикладі Sass спочатку створюється базовий стиль для кнопок (цей стиль використовуватиметься для більшості кнопок). Потім ми створюємо один стиль для кнопки "Звіту" та один стиль для кнопки "Надіслати". Обидві кнопки "Звіт" та "Надіслати" успадковують всі властивості CSS від класу .button-basic через директиву @extend. Крім того, вони мають власні кольори:

SCSS Синтаксис:

.button-basic  {
  border: none;
  padding: 15px 30px;
  text-align: center;
  font-size: 16px;
  cursor: pointer;
}

.button-report  {
  @extend .button-basic;
  background-color: red;
}

.button-submit  {
  @extend .button-basic;
  background-color: green;
  color: white;
}

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

CSS виведення:

.button-basic, .button-report, .button-submit {
  border: none;
  padding: 15px 30px;
  text-align: center;
  font-size: 16px;
  cursor: pointer;
}

.button-report  {
  background-color: red;
}

.button-submit  {
  background-color: green;
  color: white;
}

Використовуючи директиву @extend, вам не потрібно вказувати кілька класів для елемента у вашому HTML-коді, наприклад: <button class="button-basic button-report">Повідомити про це</button>. Вам просто потрібно вказати .button-report, щоб отримати обидва набори стилів.

Директива @extend допомагає зберегти ваш код Sass дуже DRY.