Есть два вложенных блока A и B с заданными размерами. Как расположить блок B ровно по центру блока A? Предложите несколько вариантов, включая решения для старых браузеров без поддержки flexbox.

Чтобы расположить вложенный блок B ровно по центру блока A, можно использовать несколько подходов:

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

Что ответить на собеседовании

Чтобы расположить вложенный блок B ровно по центру блока A, можно использовать несколько подходов:

Подробный разбор

Ответ с пояснениями

Чтобы расположить вложенный блок B ровно по центру блока A, можно использовать несколько подходов:

\1. Flexbox (современный способ)

.parent {
  display: flex;
  justify-content: center; /* по горизонтали */
  align-items: center;    /* по вертикали */
  width: 300px;  /* пример */
  height: 200px; /* пример */
}
.child {
  width: 100px;
  height: 50px;
}

\2. Абсолютное позиционирование с трансформацией

.parent {
  position: relative;
  width: 300px;
  height: 200px;
}
.child {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100px;
  height: 50px;
}

\3. Табличное выравнивание (для старых браузеров)

.parent {
  display: table;
  width: 300px;
  height: 200px;
  text-align: center;
}
.child {
  display: table-cell;
  vertical-align: middle;
  width: 100px;
  height: 50px;
  margin: 0 auto;
}

\4. Использование line-height (если высота блока фиксирована и текстовый контент)

.parent {
  width: 300px;
  height: 200px;
  line-height: 200px; /* равна высоте родителя */
  text-align: center;
}
.child {
  display: inline-block;
  vertical-align: middle;
  line-height: normal;
  width: 100px;
  height: 50px;
}

\5. Использование margin auto (только по горизонтали)

.child {
  width: 100px;
  height: 50px;
  margin: auto;
  position: relative;
  top: 50%;
  transform: translateY(-50%);
}

Для поддержки старых браузеров без flexbox лучше использовать абсолютное позиционирование с transform или табличное выравнивание. Flexbox — самый простой и универсальный способ для современных браузеров.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку