Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про CSS: modal, positioning

Как позиционировать модальное окно относительно части layout’а?

Вопрос проверяет понимание контекста позиционирования и того, как модальные окна “привязываются” к конкретным частям интерфейса.

Короткий ответ

Чтобы позиционировать модалку относительно части layout’а, контейнер делают position: relative, а модалку — position: absolute. Тогда координаты считаются от этого контейнера, а не от окна браузера. Такой подход полезен для локальных модалок, попапов и dropdown’ов. Для глобальных модалок обычно используют position: fixed и порталы.

Длинный ответ

Не все модалки должны быть “по центру экрана”.

Определение

Определение: Локальная модалка — это окно, которое привязано к конкретному блоку интерфейса, а не ко всему viewport.

Базовый способ через relative + absolute

.section {
  position: relative;
}

.modal {
  position: absolute;
  top: 0;
  right: 0;
}
  1. position: relative задаёт контекст

  2. absolute считает координаты от .section

  3. Модалка двигается вместе с блоком при скролле

Когда это особенно полезно

  1. Встроенные формы редактирования

  2. Модалки в админках

  3. Контекстные панели

Частые проблемы и нюансы

  1. overflow

    • overflow: hidden у родителя может обрезать модалку

  2. z-index

    • Нужно учитывать stacking context

  3. Scroll

    • Локальная модалка скроллится вместе с контентом

Когда нужен портал

Иногда модалка логически относится к секции, но визуально должна быть выше всего.

  1. Используют Portal (в React)

  2. Позицию всё равно считают от target-элемента

  3. Сам DOM-узел находится в body

// координаты считаются через getBoundingClientRect

Вывод

Для локальных модалок лучше использовать absolute внутри relative-контейнера, а для глобальных — порталы и fixed. Выбор зависит от UX-задачи, а не только от CSS.

Уровень

  • Рейтинг:

    4

  • Сложность:

    7

Навыки

  • CSS

    CSS

Ключевые слова

#modal

#positioning

Подпишись на React Developer в телеграм