Вопрос проверяет понимание этапа Style calculation в критическом пути рендеринга браузера, чтобы оценить, как разработчик оптимизирует отрисовку и избегает лишних пересчётов стилей.
После того как браузер построил DOM и CSSOM, ему нужно понять, как именно должен выглядеть каждый элемент на странице. Этим занимается этап Style calculation (расчёт стилей). На этом шаге браузер сопоставляет каждый узел DOM с правилами из CSSOM и вычисляет итоговые значения всех CSS-свойств для этого узла.
Style calculation может быть дорогим, если у вас тысячи элементов и сложные селекторы. Каждый раз, когда вы меняете класс или добавляете элемент, браузер может пересчитать стили для части дерева. Если изменения затрагивают геометрию (ширину, отступы), запускается reflow, а затем repaint.
Пример: если вы часто меняете класс на корневом элементе, браузеру придётся пересчитать стили для всех потомков, которые зависят от этого класса.
// Плохо: частая смена класса на body вызывает массовый пересчёт стилей
body.classList.toggle('dark-theme');
// Лучше: менять CSS-переменные, которые не требуют пересчёта всего дерева
// или использовать will-change для изоляции слоёв
В итоге Style calculation — это мост между структурой документа и его визуальным представлением. Понимание этого этапа помогает писать CSS, который быстро обрабатывается, и избегать лишних перерисовок при динамических изменениях интерфейса.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию