Лучшие практики форматирования CSS для чистых таблиц стилей
Хорошо отформатированный CSS — основа каждого поддерживаемого веб-проекта. Неаккуратные таблицы стилей замедляют отладку, расстраивают членов команды и вносят скрытые баги. В этом руководстве рассматриваются соглашения, инструменты и методы, которые профессиональные разработчики используют для поддержания CSS чистым и согласованным.
Почему форматирование CSS важно
Неотформатированный CSS работает так же, как отформатированный — браузерам всё равно. Но разработчикам — нет. Плохо отформатированные таблицы стилей приводят к:
- Конфликтам слияния, когда несколько разработчиков редактируют один файл
- Дублированным объявлениям, которые трудно заметить в стене текста
- Замедленной адаптации новых членов команды
- Скрытым багам, спрятанным в непоследовательных отступах и вложенности
Последовательное форматирование устраняет эти проблемы и делает ревью кода быстрее и продуктивнее.
Соглашения по отступам
Два доминирующих соглашения — 2 пробела и 4 пробела. Табуляция менее распространена в CSS, но всё ещё используется в некоторых проектах.
Отступ в 2 пробела (самый популярный)
.card {
display: flex;
flex-direction: column;
padding: 1rem;
}
.card__title {
font-size: 1.25rem;
font-weight: 600;
color: #1a1a2e;
}
Большинство руководств по стилю CSS — включая Google и Airbnb — рекомендуют 2 пробела. Это сохраняет читаемость вложенных селекторов без чрезмерной горизонтальной прокрутки.
Порядок свойств
Случайный порядок свойств — самая распространённая ошибка форматирования в CSS. Существуют две основные стратегии:
1. Группировка по типу (рекомендуется)
.element {
/* Позиционирование */
position: absolute;
top: 0;
right: 0;
z-index: 10;
/* Отображение и блочная модель */
display: flex;
align-items: center;
width: 100%;
margin: 0 auto;
padding: 1rem 2rem;
/* Типографика */
font-family: 'Inter', sans-serif;
font-size: 1rem;
line-height: 1.5;
color: #333;
/* Визуальные эффекты */
background-color: #fff;
border: 1px solid #e2e8f0;
border-radius: 0.5rem;
/* Анимация */
transition: transform 0.2s ease;
}
2. Алфавитный порядок
Некоторые команды сортируют свойства по алфавиту. Это просто и предсказуемо, но разделяет связанные свойства, такие как width и height.
Группированный подход даёт лучший контекст при просмотре набора правил.
Форматируйте CSS мгновенно с помощью нашего инструмента CSS Formatter.
Лучшие практики вложенности
Вложенность CSS (нативная или через препроцессоры вроде Sass) может улучшить читаемость, но при чрезмерном использовании создаёт проблемы.
Хорошо: неглубокая вложенность (максимум 2–3 уровня)
.nav {
display: flex;
gap: 1rem;
& .nav__link {
color: #555;
text-decoration: none;
&:hover {
color: #0066cc;
}
}
}
Плохо: глубокая вложенность
Глубокая вложенность генерирует длинные, высокоспецифичные селекторы, которые трудно переопределить и которые влияют на производительность. Хорошее правило: если вложенность превышает 3 уровня, рефакторите структуру.
Автоматизированные инструменты форматирования
Ручное форматирование не масштабируется. Используйте автоматизированные инструменты для обеспечения согласованности в команде.
Prettier
Prettier — самый популярный форматировщик кода, поддерживающий CSS, SCSS и Less из коробки:
npm install --save-dev prettier
npx prettier --write "**/*.css"
Stylelint
Stylelint обнаруживает ошибки и применяет соглашения помимо форматирования:
npm install --save-dev stylelint stylelint-config-standard
npx stylelint "**/*.css"
Соглашение об именовании BEM
BEM (Блок Элемент Модификатор) — наиболее широко используемое соглашение об именовании CSS:
/* Блок */
.card { }
/* Элемент (часть блока) */
.card__header { }
.card__body { }
/* Модификатор (вариация блока или элемента) */
.card--featured { }
Пользовательские свойства CSS
Пользовательские свойства (CSS-переменные) значительно выигрывают от последовательного форматирования:
:root {
/* Цвета */
--color-primary: #0066cc;
--color-secondary: #6c757d;
/* Типографика */
--font-family-base: 'Inter', system-ui, sans-serif;
--font-size-base: 1rem;
/* Отступы */
--spacing-sm: 0.5rem;
--spacing-md: 1rem;
--spacing-lg: 2rem;
}
Распространённые ошибки форматирования
1. Пропущенные точки с запятой
Всегда включайте завершающую точку с запятой в последнем объявлении. Это предотвращает баги при добавлении новых свойств.
2. Непоследовательные отступы
/* Плохо */
.header{
color : red;
margin:0;
}
/* Хорошо */
.header {
color: red;
margin: 0;
}
3. Однострочные правила
Однострочные правила делают git diff шумными, а свойства — легко пропускаемыми. Всегда используйте многострочный формат.
FAQ
Использовать табуляцию или пробелы в CSS?
Пробелы — отраслевой стандарт для CSS. Большинство руководств по стилю и форматировщиков (Prettier) используют 2 пробела по умолчанию. Используйте то, что согласовала команда, но будьте последовательны.
Как обеспечить форматирование CSS в команде?
Настройте Prettier с общим конфигурационным файлом, добавьте pre-commit хук с помощью Husky и lint-staged, а также настройте CI-пайплайн для отклонения неотформатированного кода.
Связанные ресурсы
- CSS Formatter — мгновенное форматирование и украшение CSS
- Руководство по минификации кода — оптимизация CSS для продакшена
- Лучшие практики форматирования HTML — те же принципы для HTML
🛠️ Попробуйте сейчас: CSS Formatter — вставьте CSS и получите идеально отформатированный результат. 100% бесплатно, всё обрабатывается в вашем браузере.