Покрытие CSS и неиспользуемые стили
Находите и удаляйте неиспользуемый CSS с помощью панели Coverage в DevTools и инструментов удаления неиспользуемого кода, таких как PurgeCSS.
«Покрытие CSS и неиспользуемые стили» — бесплатный урок CSS Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CSS Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CSS Academy содержит 4 уроков всего.
Проблема неиспользуемого CSS
Большие файлы CSS часто содержат стили для компонентов, которых нет на текущей странице. Каждый неиспользуемый байт увеличивает время разбора, построения CSSOM и передачи данных. В типичном рабочем приложении на любой конкретной странице может не использоваться 90% CSS или даже больше.
Покрытие в Chrome DevTools
Откройте DevTools → панель покрытия (Cmd+Shift+P → Покрытие). Начните запись, взаимодействуйте со страницей, а затем остановите запись. Панель показывает каждый файл CSS с процентом использования и выделяет неиспользуемые правила красным цветом. Экспортируйте данные о покрытии в формате JSON для анализа.
PurgeCSS
PurgeCSS просматривает файлы HTML, JS и шаблонов, находит имена классов и удаляет неиспользуемые правила CSS. Настройте шаблоны путей так, чтобы охватить все файлы, в которых могут встречаться имена классов. Добавляйте динамически используемые классы (добавляемые с помощью JS) в список исключений, чтобы предотвратить случайное удаление.
JIT в Tailwind CSS
JIT-компилятор Tailwind генерирует только служебные классы, фактически используемые в шаблонах. В результате CSS получается очень небольшим — часто 5–15 КБ для целого приложения, — поскольку неиспользуемые служебные классы вообще не генерируются. Это идеальный результат удаления неиспользуемых стилей.
Конфигурация PurgeCSS
В конфигурации webpack или Vite добавьте PurgeCSS с шаблонами путей, охватывающими все файлы шаблонов. Параметр safelist принимает строки, регулярные выражения и deep-safelist для сложных шаблонов динамических классов из библиотек вроде Headless UI.
Преимущество CSS Modules
CSS Modules создают уникальные имена классов для каждого файла и удаляют неиспользуемые модули с помощью настроек сборщика. В пакет сборки включаются только импортированные модули CSS, а размещение стилей рядом с компонентами естественным образом устраняет неиспользуемые глобальные стили.
Разделение CSS по маршрутам
Разделяйте CSS по маршрутам в таких фреймворках, как Next.js (извлечение CSS для каждой страницы), или используйте динамический импорт совместно с модулями CSS. Каждая страница загружает только собственные стили, поэтому анализ покрытия по страницам становится полезнее анализа всего приложения.
Измерение с помощью Lighthouse
Аудит Lighthouse «Сократить неиспользуемый CSS» оценивает потенциальную экономию байтов от удаления неиспользуемых правил. Он выявляет конкретные ресурсы таблиц стилей с высокой долей неиспользуемого содержимого. Используйте его как ориентир для определения файлов, которые следует проверить в первую очередь.
Учет динамических состояний
Анализ покрытия фиксирует только состояния, видимые во время записи. Состояния при наведении, открытые модальные окна, состояния ошибок и аутентифицированные состояния необходимо вручную активировать во время записи покрытия, чтобы не удалить их стили по ошибке.
Монолитный CSS и CSS по компонентам
Монолитные глобальные таблицы стилей со временем накапливают неиспользуемый CSS, поскольку функции удаляются. CSS для отдельных компонентов (CSS Modules, Styled Components, служебные классы Tailwind) проще очищать: стили находятся рядом со своими компонентами и удаляются вместе с ними.
Аудит устаревших кодовых баз
Для больших устаревших файлов CSS сначала используйте UnCSS или PurgeCSS в режиме только отчёта. Отсортируйте правила по частоте использования. Извлеките и удалите явно неиспользуемые стили сторонних плагинов. Работайте постепенно, чтобы случайно не удалить стили для редких пограничных состояний.
Проверка знаний
Что измеряет панель покрытия Chrome DevTools?
Итоги
Анализ покрытия CSS с помощью панели покрытия DevTools и Lighthouse выявляет неиспользуемые правила. PurgeCSS и JIT Tailwind автоматизируют удаление неиспользуемого кода. CSS Modules и разделение по маршрутам предотвращают накопление неиспользуемых стилей. Вместе они уменьшают объём CSS и время разбора.
Часто задаваемые вопросы
Урок «Покрытие CSS и неиспользуемые стили» бесплатный?
Да — полный текст урока «Покрытие CSS и неиспользуемые стили» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CSS Academy, подпишись на CoddyKit PRO. Курс CSS Academy содержит 4 уроков всего.
Чему я научусь в уроке «Покрытие CSS и неиспользуемые стили»?
Находите и удаляйте неиспользуемый CSS с помощью панели Coverage в DevTools и инструментов удаления неиспользуемого кода, таких как PurgeCSS. Ты практикуешь CSS Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать CSS Academy?
Предыдущий опыт не требуется. CSS Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Покрытие CSS и неиспользуемые стили»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке CSS Academy?
Да. Каждый урок CSS Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Критический CSS и блокировка отрисовки
- Компоновка, рисование и композиция: конвейер отрисовки
- will-change и продвижение на слои
- Покрытие CSS и неиспользуемые стили