Центрировать div по вертикали в Bootstrap 5

Как я могу центрировать div по вертикали в bootstrap 5? Он должен быть выровнен посередине между содержимым перед div и концом экрана.

Пробовал это:

    <div>some content</div>
    <div class = "d-flex flex-column min-vh-100 justify-content-center align-items-center">
        <div>div that should be centered</div>
    </div>

Это делает страницы длиннее, чем они есть на самом деле. Div не выглядит центрированным.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
2
0
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать это следующим образом:

  • Оберните все одним div, который имеет 100% ширины и высоты экрана.
  • Используйте flex-grow-1 для второго div, чтобы он занял оставшуюся высоту и центрировал все внутри.

<!doctype html>
<html lang = "en">
  <head>
    <!-- Bootstrap core CSS -->
    <link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet" integrity = "sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin = "anonymous">
  </head>
  <body>
    <div class = "d-flex flex-column min-vh-100 min-vw-100">
      <div>This div is not centered.</div>
      <div class = "d-flex flex-grow-1 justify-content-center align-items-center">
        <div>This div is centered.</div>
      </div>
    </div>
  </body>
</html>

Если вы добавите немного "lorem ipsum" в начале тела, вы увидите проблему.

erik-stengel 20.03.2022 07:08

Я обновил свой ответ одним div в начале тела. Проверь это.

NeNaD 20.03.2022 07:13

Теперь появилась полоса прокрутки. Например, если первый div имеет высоту 25%, второй div не будет отображаться посередине, потому что ниже добавляется прокручиваемое пространство.

erik-stengel 20.03.2022 07:18

Да, конечно. Вы добавили min-vh-100, чтобы сделать второй div, который обтекает центрированный div. Это означает, что высота второго блока будет иметь минимальное значение высоты экрана. Ваше желаемое поведение состоит в том, чтобы иметь оба div, но не прокручивать?

NeNaD 20.03.2022 07:39

Второй div должен располагаться по центру по вертикали между содержимым выше и концом страницы.

erik-stengel 20.03.2022 07:42

Я понимаю. Я обновил свой ответ. Можешь еще раз проверить?

NeNaD 20.03.2022 07:50

Другие вопросы по теме