Встречается на собеседованиях • сегодня

Какие знаешь способы избежать Relayout

  1. Используй transform вместо top/left
    transform не вызывает relayout, так как работает на GPU:

    css
    .element {
      transform: translate(50px, 50px);
    }
  2. Избегай чтения layout-свойств (offsetWidth, getComputedStyle)
    Чтение этих свойств форсирует синхронный пересчёт layout. Оптимизируй код, группируя чтение и запись (см. FastDOM).

  1. Применяй will-change
    Подсказывает браузеру, что элемент будет изменяться, позволяя оптимизировать рендеринг:

    css
    .animated {
      will-change: transform;
    }
  2. Используй position: absolute/fixed
    Абсолютно позиционированные элементы выпадают из потока и меньше влияют на соседей.

  3. Оптимизируй CSS-селекторы
    Сложные селекторы (например, div:nth-child(3) > a:hover) замедляют перерасчёт layout.

  4. Batch DOM-изменения
    Вместо множества мелких правок используй DocumentFragment или скрывай элемент (display: none) на время изменений.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы