Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

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

Почему при центрировании через position: absolute и top/left: 50% часто используют transform: translate(-50%, -50%)?

Этот вопрос проверяет понимание точного центрирования элементов с помощью CSS и роли трансформаций в этом процессе.

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

transform: translate(-50%, -50%) смещает элемент обратно на половину его собственной ширины и высоты, что позволяет точно отцентрировать элемент относительно точки top/left: 50%.

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

Механика центрирования:

  1. top: 50%; left: 50%; перемещает верхний левый угол элемента в центр родителя

  2. transform: translate(-50%, -50%); смещает элемент обратно на половину его размеров

Преимущества подхода:

  • Работает для элементов с неизвестными размерами

  • Не требует знания точных размеров элемента

  • Поддерживается во всех современных браузерах

Пример реализации:

.centered {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

Альтернативные методы:

  • Flexbox: display: flex; justify-content: center; align-items: center;

  • Grid: display: grid; place-items: center;

Когда использовать:

  • Когда нужно поддерживать старые браузеры

  • Для абсолютно позиционированных элементов

  • Когда другие методы центрирования недоступны

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • CSS

    CSS

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

#positioning

#centering

#transform

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