Проверяет понимание механизма блокировки рендеринга CSS и его влияния на производительность загрузки веб-страницы.
Когда браузер загружает веб-страницу, он проходит через критический путь рендеринга (Critical Rendering Path). Этот путь включает несколько этапов: построение DOM (Document Object Model) из HTML, построение CSSOM (CSS Object Model) из CSS, объединение их в Render Tree, вычисление геометрии элементов (Layout) и, наконец, отрисовку (Paint).
CSS считается ресурсом, блокирующим рендеринг, потому что браузер не начинает отрисовку страницы до тех пор, пока не загрузит и не обработает все CSS-файлы, указанные в <link> в <head>. Это сделано для предотвращения появления страницы без стилей (Flash of Unstyled Content, FOUC). Если бы браузер начал рендеринг до загрузки CSS, пользователь сначала увидел бы неоформленный контент, а затем — внезапное применение стилей, что ухудшает пользовательский опыт.
Представьте, что у вас есть внешний CSS-файл, который загружается 2 секунды. В течение этих 2 секунд страница будет оставаться пустой, даже если HTML уже полностью загружен. Это увеличивает время до первого рендеринга (First Paint) и ухудшает показатели Core Web Vitals, такие как First Contentful Paint (FCP).
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="styles.css"> <!-- Блокирует рендеринг -->
</head>
<body>
<h1>Привет, мир!</h1>
</body>
</html>media. Браузер загрузит такой CSS, но не будет блокировать рендеринг, если условие не выполняется.<head> внутри тега <style>. Остальные стили загружайте асинхронно.rel="preload" и атрибута onload.<link rel="stylesheet" href="print.css" media="print"> <!-- Не блокирует рендеринг на экране -->
<link rel="preload" href="non-critical.css" as="style" onload="this.rel='stylesheet'">Понимание блокировки рендеринга CSS критически важно для оптимизации производительности веб-страниц. Применяя техники, такие как инлайновые критические стили и асинхронная загрузка некритического CSS, вы можете значительно улучшить скорость загрузки и пользовательский опыт, особенно на мобильных устройствах и медленных соединениях.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию