HTML + CSS
  • 🧑‍💻Full-Stack Web Developer
  • ‼️Список корисних ресурсів
  • 📚Теорія
    • 1️⃣HTML
      • Введення в веб-розробку
      • Теги та атрибути
      • Скелет документа HTML
      • Семантика
      • Розмітка тексту
      • Розмітка тексту (2 частина)
      • Зображення
      • Структура HTML-документа
      • Таблиці
      • Символьні підстановки
      • Таблиця кодів символів
      • Відео та аудіо
      • Інструменти розробника
      • Валідація
    • 2️⃣CSS та селектори
      • CSS
      • Селектори
      • Псевдокласи стану
      • Колір
      • Каскад стилів
      • CSS-змінні
      • Одиниці вимірювання
      • Стилізація тексту
      • Властивості шрифту
      • Псевдоелементи тексту
      • Підключення сторонніх шрифтів
    • 3️⃣Блокова модель
      • Основи блокової моделі
      • Геометрія елемента
      • Типи елементів
      • Структурні псевдокласи
    • 4️⃣Flexbox
      • Концепції
      • Властивості контейнера
      • Властивості елемента
    • 5️⃣Grid
    • 6️⃣Зображення і декор
      • Типи зображень
      • Фон елемента
      • Властивості object-fit і object-position
      • Псевдоелементи
      • Градієнт
      • Тінь елемента
    • 7️⃣Векторна графіка
      • Що таке векторна графіка
      • SVG-елементи
      • SVG-документ
      • Використання векторної графіки
      • Зміна властивостей в SVG
    • 8️⃣Позиціонування
      • Позиційовані елементи
      • Властивість z-index
      • Властивість overflow
    • 9️⃣Переходи і анімація
      • CSS-переходи
      • CSS-анімація
      • 2D-трансформації
      • Перспектива
    • 🔟Форми
      • Для чого потрібні форми
      • Елемент <form>
      • Елемент <label>
      • Елемент <input>
      • Елемент <textarea>
      • Елемент <select>
      • Елемент <datalist>
      • Групування полів
      • Валідація форм
      • Валідація на клієнті
      • Псевдокласи стану
    • 🐭Адаптивна верстка
      • Медіа-запити
      • Метатег viewport
      • Інструменти розробника для адаптивної та респонсивної верстки
      • Типи верстки
      • Стратегія Mobile First
      • Вендорні префікси
      • Налаштування теми
    • 🐹Адаптивна графіка
      • Щільність пікселів
      • Респонсивні зображення
      • Респонсивні фонові зображення
      • Респонсивний елемент <img>
      • Елемент <picture>
    • 🦁Методологія ВЕМ
    • 🐶Препроцесор SASS
    • 🐰CSS фреймворки
      • Що таке CSS фреймворки
  • 👷‍♂️Практика
    • 👷Практика
  • Про мене
    • Про мене
Powered by GitBook
On this page
  • Оголошення змінної
  • Використання змінної
  • Резервне значення
  • Область видимості
  1. Теорія
  2. CSS та селектори

CSS-змінні

CSS-змінні відомі також як змінні каскадних таблиць стилів або CSS-змінні кастомних властивостей.

CSS-змінні - це механізм, що дозволяє зберігати значення властивостей для повторного використання в коді CSS. Змінні роблять CSS більш модульним і легшим у редагуванні, особливо коли використані повторювані значення.

Припустимо у нас є акцентний колір і він часто зустрічається по макету.

<section class="my-section">
   <h1 class="my-title">Lorem ipsum dolor sit amet.</h1>
   <p class="my-text">Lorem ipsum dolor sit amet consectetur adipisicing elit.</p>
</section>
.my-title {
  color: #FFFFFF;
  background-color: #0000FF;
}

.my-text {
  color: #0000FF;
}

Якщо, припустимо замовник вирішить поміняти акцентний колір, або шрифт, то доведеться по всьому файлу стилів замінити значення на нове. Це може бути марудною справою. Тому ключові значення виносять у змінні, а при оголошенні якоїсь властивості стилю просто вказують цю змінну. В такому разі при зміні якогось значення стилю достатньо буде поміняти його у змінних.

Далі розглянемо як це зробити.

Оголошення змінної

Змінні оголошують напочатку файлу зі стилями в спеціальному селекторі :root, що представляє кореневий елемент документа (зазвичай <html>), і можуть бути використані в будь-якому місці у CSS коді.

Щоб визначити змінну, використовують властивість --назва-змінної, де назва-змінної - це ім'я, яке ви вибираєте для змінної. Ім'я змінної чутливе до регістру та може містити латинські літери, цифри, підкреслення і тире.

:root {
  --accent-color: #3498db;
  --main-font-size: 24px;
}

Імена змінним можна давати в dash-snake-case-pattern, underscore_snake_case_pattern або camelCasePattern. Головне, щоб стилістика написання назв для змінних була однаковою по всьому проєкту.

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

Щоб використати в CSS-коді змінну потрібно її вказати у функції var().

:root {
  --accent-color: #0000FF;
}

.my-title {
  color: #FFFFFF;
  background-color: var(--accent-color);
}

.my-text {
  color: var(--accent-color);
}

Ми додали трохи коду, але тепер, щоб змінити акцентний колір по всьому документу, достатньо задати йому нове значення після відповідної назви в селекторі :root.

В CSS-змінних можна зберігати не тільки колір. Можна створити окремі змінні наприклад для відступів, розміру шрифта, точок перелами для активної верстки тощо. Що більше значень винесено у змінні тим легше буде вносити зміни в проєкт "на льоту". Але не все варто виносити в змінні, треба знайти золоту середину необхідності у цьому.

Резервне значення

Припустімо з якоїсь причини ми звертаємося до змінної, оголошення якої немає в :root. На такі випадки можна задати альтернативне значення стилю (фолбек). Це необовʼязковий параметр, тому не варто його вказувати скрізь.

var(--ім'я_змінної, фолбек)

Наприклад:

.my-text {
  color: var(--accent-color, #3498db);
}

Область видимості

Змінні вказані в :root будуть доступні в будь-якому селекторі. Але можна оголосити змінні в якомусь іншому селекторі й тоді він буде доступний тільки до цього елемента і його нащадків. Тобто ми створимо локальну область видимості для цієї змінної.

<section class="my-section">
   <h1 class="my-title">Lorem ipsum dolor sit amet.</h1>
   <p class="my-text">Lorem ipsum dolor sit amet consectetur adipisicing elit.</p>
</section>
.my-section {
  --accent-color: #0000FF;
}

.my-title {
  color: #FFFFFF;
  background-color: var(--accent-color);
}

.my-text {
  color: var(--accent-color);
}

Змінні можна перевизначати локально іншими значеннями. Для цього необхідно оголосити змінну з таким самим ім'ям, що і в предка, і задати їй необхідне значення.

PreviousКаскад стилівNextОдиниці вимірювання

Last updated 1 year ago

📚
2️⃣