Иногда возникает случай использования, когда вам нужно, чтобы стиль или макет элемента на странице обновлялся в этот самый момент, а не дожидаться, когда браузер найдет для этого наиболее эффективное время. Одним из примеров может быть моя предыдущая статья Анимация в CSS.

Но как это сделать?

Чтобы было ясно, это то, что нужно использовать с осторожностью. Плохой код, который неоднократно вызывает такое поведение браузера, очень часто является источником проблем с производительностью. Посмотрите на пример отличия здесь.

Благодаря исчерпывающему списку, составленному Полом Айришем, легко просто выбрать одну из функций DOM и использовать ее в качестве триггера для нашего рестайлинга или перекомпоновки:

Рестайл:

// forces style recalculation only
const forceStyleRecalculation = () => {
  return document.scrollingElement;
}

Reflow (макет):

// forces restyle and reflow
const forceReflow = () => {
  return document.body.offsetWidth;
}

Список также содержит ссылку на дополнительную информацию, такую ​​как влияние на производительность, как избежать проблем, список триггеров CSS для этого поведения и многое другое, так что читайте :)