Існує ряд визнаних методологій форматування вашого CSS. Зрештою, від вас залежить, що вам буде зручніше писати, але це допоможе керувати вашим CSS для великих і складних проектів. Не те, що це важливо, але я, як правило, використовую комбінацію BEM та SMACSS.
BEM - це дуже корисна, потужна та проста угода про іменування, яка полегшує читання та розуміння вашого інтерфейсного коду, полегшує роботу з ним, легше масштабує, надійніше і чіткіше та набагато більш суворе.
Блок
Самостійна сутність, яка має значення сама по собі, наприклад:
header, container, menu, checkbox, input
Стихія
Частини блоку і не мають самостійного значення. Вони семантично прив’язані до його блоку:
menu item, list item, checkbox caption, header title
Модифікатор
Прапори на блоках або елементах. Використовуйте їх, щоб змінити зовнішній вигляд або поведінку:
disabled, highlighted, checked, fixed, size big, color yellow
Мета OOCSS - заохотити повторне використання коду і, врешті-решт, більш швидкі та ефективні таблиці стилів, які легше додавати та підтримувати.
OOCSS базується на двох основних принципах:
- Відокремлення структури від шкіри
Це означає визначити повторювані візуальні особливості (наприклад, стилі фону та меж) як окремі «обкладинки», які ви можете поєднувати та поєднувати з різними об’єктами, щоб досягти великої кількості візуальної різноманітності без особливого коду. Див. Об’єкт модуля та його обшивки.
- Поділ контейнерів та вмісту
По суті, це означає "рідко використовуйте стилі, що залежать від місцезнаходження". Предмет повинен виглядати однаково, куди б ви його не поклали. Отже, замість того, щоб укладати специфіку за допомогою .myObject h2 {...}, створіть і застосуйте клас, що описує питання, наприклад. Це дає вам впевненість, що: (1) всі некласифіковані s будуть виглядати однаково; (2) всі елементи з класом категорії (так званий mixin) виглядатимуть однаково; і 3) вам не потрібно буде створювати стиль заміщення для випадку, коли ви дійсно хочете, щоб .myObject h2 виглядав як звичайний.
SMACSS - це спосіб вивчити процес проектування і як спосіб вписати ці жорсткі рамки в гнучкий процес мислення. Це спроба задокументувати послідовний підхід до розробки сайтів при використанні CSS.
В основі SMACSS лежить категоризація. Класифікуючи правила CSS, ми починаємо бачити закономірності і можемо визначити кращі практики щодо кожного з цих шаблонів.
Існує п’ять типів категорій:
База
Містить стилі скидання та за замовчуванням. Він також може мати базові стилі для елементів керування, таких як кнопки, сітки тощо, які можуть бути перезаписані пізніше в документі за певних обставин.
Макет
містив би всю навігацію, панірувальні сухарі, мапи сайтів тощо тощо.
Модулі
містять стилі, характерні для певної області, такі як стилі форм контактів, плитки домашньої сторінки, перелік продуктів тощо тощо тощо.
Держава
Містить класи стану, такі як isSelected, isActive, hasError, wasSuccessful тощо тощо.
Тема
Містить будь-які стилі, пов’язані з тематикою.
Тут забагато деталей, але подивіться і на ці інші: