PassFront
  1. PassFront
  2. База знаний
  3. Основы CSS

В чем опасность импортов в самом CSS?

Основы CSS

Опасность `@import` в CSS — в том, что импортированный файл начинает загружаться только после загрузки родительского, а это удлиняет критический путь отрисовки.

Что происходит

/* main.css */
@import url('reset.css');
@import url('theme.css');
  1. Браузер скачивает main.css.
  2. Только прочитав его, узнаёт про reset.css и theme.css и начинает их загрузку.
  3. Пока всё не загрузится, страница не отрисуется — CSS блокирует рендер.

Цепочка из нескольких уровней импорта даёт несколько последовательных сетевых запросов.

Другие особенности

  • @import должен стоять в начале файла, иначе игнорируется.
  • Импорт не создаёт изоляции: стили смешиваются в общем каскаде.

Как лучше

  • подключать файлы через несколько <link rel="stylesheet"> — они грузятся параллельно;
  • собирать CSS бандлером (Vite, webpack) в один файл;
  • в Sass использовать @use — он объединяет файлы на этапе сборки.

Коротко для собеседования

Браузерный @import загружает CSS последовательно и задерживает отрисовку; лучше <link> или сборка бандлером.

Подробнее: MDN — @import

Другие вопросы раздела