Вопрос проверяет понимание того, как CSS влияет на процесс загрузки и отрисовки страницы.
CSS напрямую не блокирует парсинг HTML, но может блокировать рендеринг страницы. Браузер старается получить стили до первой отрисовки, чтобы избежать визуальных скачков. Также CSS может косвенно блокировать выполнение JavaScript, если скрипт зависит от стилей. Поэтому порядок подключения ресурсов имеет значение.
CSS влияет не столько на парсинг HTML, сколько на этап отрисовки и выполнение скриптов.
Важно разделять два процесса:
Парсинг HTML:
браузер читает документ и строит DOM
Загрузка CSS:
браузер параллельно загружает стили
строит CSSOM
HTML продолжает парситься, но браузер откладывает некоторые этапы.
Определение: Render blocking resource — ресурс, без которого браузер не может безопасно выполнить первую отрисовку.
Причины:
Без CSS невозможно корректно вычислить layout.
Без layout нельзя построить render tree.
Поэтому браузер ждёт CSS перед первой отрисовкой.
Если встречается <script>:
Браузер останавливает выполнение JS, пока не загрузятся CSS, от которых он зависит.
Это связано с тем, что JS может читать вычисленные стили.
Пример:
<link rel="stylesheet" href="style.css">
<script>
// может вызвать getComputedStyle(...)
</script>
Критический CSS стоит держать небольшим.
Большие стили лучше грузить отдельно.
Важно следить за порядком подключения.
Вывод: CSS не блокирует сам парсинг HTML, но блокирует рендеринг и может задерживать выполнение JavaScript.