Atualização 2019 - Bootstrap 4
"Conteúdo centrado" pode significar muitas coisas diferentes, e a centralização do Bootstrap mudou muito desde a postagem original.
Centro Horizontal
Bootstrap 3
text-center
é usado para display:inline
elementos
center-block
centralizar display:block
elementos
col-*offset-*
centralizar colunas da grade
- veja esta resposta para centralizar a barra de navegação
Demonstração Bootstrap 3 Centralização Horizontal
Bootstrap 4
text-center
ainda é usado para display:inline
elementos
mx-auto
substitui center-block
para centralizar display:block
elementos
offset-*
ou mx-auto
pode ser usado para centralizar colunas da grade
justify-content-center
no row
também pode ser usado para o centrocol-*
mx-auto
(margens de auto eixo x) vai centrar display:block
ou display:flex
os elementos que têm uma largura definida , ( %
, vw
, px
, etc ..). O Flexbox é usado por padrão nas colunas da grade, portanto, também existem vários métodos de centralização do flexbox.
Demonstração Bootstrap 4 Centralização Horizontal
Vertical Center
Agora que o Bootstrap 4 é flexbox por padrão, existem muitas abordagens diferentes para o alinhamento vertical usando: margens automáticas , utilitários flexbox ou os utilitários de exibição junto com os utilitários de alinhamento vertical . A princípio, "utilitários de alinhamento vertical" parece óbvio, mas eles funcionam apenas com elementos de exibição em linha e em tabela. Aqui estão algumas opções de centralização vertical do Bootstrap 4.
1 - Centro vertical usando margens automáticas:
Outra maneira de centralizar verticalmente é usar my-auto
. Isso centralizará o elemento dentro de seu contêiner. Por exemplo, h-100
aumenta a altura da linha e my-auto
centraliza verticalmente a col-sm-12
coluna.
<div class="row h-100">
<div class="col-sm-12 my-auto">
<div class="card card-block w-25">Card</div>
</div>
</div>
Demonstração de centro vertical usando margens automáticas
my-auto
representa margens no eixo y vertical e é equivalente a:
margin-top: auto;
margin-bottom: auto;
2 - Centro vertical com Flexbox:
Como o Bootstrap 4 .row
está agora, display:flex
você pode simplesmente usar align-self-center
em qualquer coluna para centralizá-lo verticalmente ...
<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>
ou use align-items-center
no todo .row
para alinhar verticalmente todo o alinhamento col-*
na linha ...
<div class="row align-items-center">
<div class="col-6">
<div class="card card-block">
Center
</div>
</div>
<div class="col-6">
<div class="card card-inverse card-danger">
Taller
</div>
</div>
</div>
Demonstração de colunas de altura diferente do centro vertical
3 - Centro vertical usando os utilitários de exibição:
Bootstrap 4 tem utils de visualização que podem ser utilizados para display:table
, display:table-cell
, display:inline
, etc .. Estes podem ser usados com os utils alinhamento vertical para alinhar em linha, em linha ou bloco de elementos de célula de tabela.
<div class="row h-50">
<div class="col-sm-12 h-100 d-table">
<div class="card card-block d-table-cell align-middle">
I am centered vertically
</div>
</div>
</div>
Centro vertical usando a demonstração dos utilitários de exibição