Подтвердить что ты не робот

Bootstrap 4 Center Вертикальное и горизонтальное выравнивание

У меня есть страница, где существует только форма, и я хочу, чтобы форма была помещена в центр экрана.

<div class="container">
  <div class="row justify-content-center align-items-center">
    <form>
      <div class="form-group">
        <label for="formGroupExampleInput">Example label</label>
        <input type="text" class="form-control" id="formGroupExampleInput" placeholder="Example input">
      </div>
      <div class="form-group">
        <label for="formGroupExampleInput2">Another label</label>
        <input type="text" class="form-control" id="formGroupExampleInput2" placeholder="Another input">
      </div>
    </form>   
  </div>  
</div>

justify-content-center выравнивает форму по горизонтали, но я не могу понять, как выровнять ее по вертикали. Я попытался использовать align-items-center и align-self-center, но это не сработает.

Что мне не хватает?

DEMO

4b9b3361

Ответ 1

Обновление 2019 - Bootstrap 4.3.1

Там нет необходимости для дополнительного CSS. То, что уже включено в Bootstrap, будет работать. Убедитесь, что контейнер формы в полный рост. Bootstrap 4 теперь имеет класс h-100 для высоты 100%...

Вертикальный центр:

<div class="container h-100">
  <div class="row h-100 justify-content-center align-items-center">
    <form class="col-12">
      <div class="form-group">
        <label for="formGroupExampleInput">Example label</label>
        <input type="text" class="form-control" id="formGroupExampleInput" placeholder="Example input">
      </div>
      <div class="form-group">
        <label for="formGroupExampleInput2">Another label</label>
        <input type="text" class="form-control" id="formGroupExampleInput2" placeholder="Another input">
      </div>
    </form>   
  </div>
</div>

https://www.codeply.com/go/raCutAGHre

высота контейнера с пунктом (пунктами) по центру должна составлять 100% (или независимо от желаемой высоты относительно центрированного элемента)

Примечание: при использовании height:100% (процентная высота) для любого элемента, элемент принимает высоту его контейнера. В современных браузерах height:100vh; блока vh height:100vh; можно использовать вместо % чтобы получить желаемую высоту.

Таким образом, вы можете установить html, body {height: 100%} или использовать новый класс min-vh-100 для контейнера вместо h-100.


Горизонтальный центр:

  • display:inline text-center к центру display:inline элементы и содержимое столбца
  • mx-auto для центрирования внутри гибких элементов
  • offset-* или mx-auto можно использовать для .col- столбцов (.col-)
  • столбцы col-* justify-content-center по центру (col-*) внутри row

Вертикальный центр выравнивания в Bootstrap 4
Bootstrap 4 полноэкранная центрированная форма
Bootstrap 4 центральная группа ввода
Bootstrap 4 горизонтальный + вертикальный центр полный экран

Ответ 2

Вам нужно что-то, чтобы сосредоточить вашу форму. Но поскольку вы не указали высоту для своего html и body, она просто закроет контент, а не видовое окно. Другими словами, не было места, где можно было бы центрировать элемент.

html, body {
  height: 100%;
}
.container, .row.justify-content-center.align-items-center {
  height: 100%;
  min-height: 100%;
}

Ответ 3

Эта работа для меня:

<section class="h-100">
  <header class="container h-100">
    <div class="d-flex align-items-center justify-content-center h-100">
      <div class="d-flex flex-column">
        <h1 class="text align-self-center p-2">item 1</h1>
        <h4 class="text align-self-center p-2">item 2</h4>
        <button class="btn btn-danger align-self-center p-2" type="button" name="button">item 3</button>
      </div>
    </div>
  </header>
</section>

Ответ 4

Flexbox может помочь вам. информация здесь

<div class="d-flex flex-row justify-content-center align-items-center" style="height: 100px;">
    <div class="p-2">
     1
    </div>
    <div class="p-2">
     2
    </div>
</div>

Ответ 5

Никто не работал для меня. Но его один сделал.

Так как класс Bootstrap 4.row теперь отображается: flex, вы можете просто использовать новую утилиту align-self-centre flexbox в любом столбце для его вертикального центрирования:

<div class="row">
   <div class="col-6 align-self-center">
      <div class="card card-block">
      Center
      </div>
   </div>
   <div class="col-6">
      <div class="card card-inverse card-danger">
      Taller
      </div>
   </div>
</div>

Я узнал об этом из https://medium.com/wdstack/bootstrap-4-vertical-center-1211448a2eff

Ответ 6

Бутстрап имеет текстовый центр для центровки текста. Например

<div class="container text-center">

Вы меняете следующее

<div class="row justify-content-center align-items-center">

к следующему

<div class="row text-center">