Reflow и repaint - это процессы, связанные с перерисовкой и обновлением элементов на веб-странице в браузере.
Repaint
В случае изменения стилей элемента, не влияющих на его размеры и положение на странице (например, background-color
, border-color
, visibility
), браузер просто отрисовывает его заново, с учётом нового стиля — происходит repaint (или restyle).
Reflow
Если же изменения затрагивают содержимое, структуру документа, положение элементов — происходит reflow (или relayout). Причинами таких изменений обычно являются:
- Манипуляции с DOM (добавление, удаление, изменение, перестановка элементов);
- Изменение содержимого, в т.ч. текста в полях форм;
- Расчёт или изменение CSS-свойств;
- Добавление, удаление таблиц стилей;
- Манипуляции с атрибутом «
class
»; - Манипуляции с окном браузера — изменения размеров, прокрутка;
- Активация псевдо-классов (например,
:hover
).