Вопрос проверяет понимание того, как браузер готовит данные для отрисовки страницы и какие структуры участвуют в этом процессе.
Render tree строится на основе DOM и CSSOM. В него попадают только те элементы, которые должны отображаться на странице, и для каждого вычисляются стили. Затем render tree используется для layout и последующей отрисовки. Элементы с display: none в render tree не попадают.
Render tree — это структура, которую браузер использует непосредственно для отрисовки элементов на экране.
Определение: Render tree — дерево визуальных элементов страницы, сформированное из DOM и CSSOM, содержащее только отображаемые узлы.
Перед его созданием браузер формирует две основные структуры:
DOM:
структура HTML-документа
содержит все узлы
CSSOM:
структура всех правил стилей
включает каскад и специфичность
Процесс выглядит так:
DOM + CSSOM объединяются.
Для каждого элемента вычисляются финальные стили.
Элементы, которые не отображаются (display: none), исключаются.
Создаётся render tree.
В отличие от DOM, render tree хранит:
Геометрию элементов:
размеры
позицию
Визуальные свойства:
цвет
фон
границы
Layout рассчитывается именно по render tree.
Любые изменения, влияющие на геометрию, могут вызвать reflow.
Изменения только цвета или фона вызывают repaint.
Вывод: render tree — это “визуальная версия DOM”, содержащая только отображаемые элементы и их вычисленные стили.