No Bootstrap 4 deve-se usar a text-center
classe para alinhar blocos embutidos .
NOTA: text-align:center;
definido em uma classe personalizada que você aplica ao seu elemento pai, funcionará independentemente da versão do Bootstrap que você estiver usando. E é exatamente isso que .text-center
se aplica.
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<div class="container">
<div class="row">
<div class="col text-center">
<button class="btn btn-default">Centered button</button>
</div>
</div>
</div>
Se o conteúdo a ser centralizado for block ou flex (not inline-
), pode-se usar o flexbox para centralizá-lo:
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<div class="d-flex justify-content-center">
<button class="btn btn-default">Centered button</button>
</div>
... que se aplica display: flex; justify-content: center
ao pai.
Observação: não use em .row.justify-content-center
vez de .d-flex.justify-content-center
, pois .row
aplica margens negativas em determinados intervalos de resposta, o que resulta em barras de rolagem horizontais inesperadas (a menos que .row
seja filho direto de.container
, que aplica preenchimento lateral para neutralizar a margem negativa, nos intervalos de resposta corretos). Se você deve usar .row
, por qualquer motivo, substitua sua margem e preenchimento com .m-0.p-0
, nesse caso, você acabará com praticamente os mesmos estilos que.d-flex
.
Observação importante: a segunda solução é problemática quando o conteúdo centralizado (o botão) excede a largura do pai ( .d-flex
), especialmente quando o pai tem largura de janela de visualização, especificamente porque torna impossível rolar horizontalmente para o início do conteúdo (à esquerda a maioria).
Portanto, não o use quando o conteúdo a ser centralizado puder se tornar mais largo do que a largura pai disponível e todo o conteúdo estiver acessível.
Tente isso com bootstrap
CÓDIGO:
<div class="row justify-content-center"> <button type="submit" class="btn btn-primary">btnText</button> </div>
LIGAÇÃO:
https://getbootstrap.com/docs/4.1/layout/grid/#variable-width-content
fonte
Com o uso dos utilitários bootstrap 4, você pode centralizar horizontalmente um elemento em si, definindo as margens horizontais para 'auto'.
Para definir as margens horizontais como automáticas, você pode usar
mx-auto
. Om
se refere à margem e ox
se refere ao eixo x (esquerda + direita) eauto
se refere à configuração. Portanto, isso definirá a margem esquerda e a margem direita para a configuração 'automática'. Os navegadores calcularão a margem igualmente e centralizarão o elemento. A configuração só funcionará em elementos de bloco, portanto, o display: block precisa ser adicionado e com os utilitários de bootstrap isso é feito pord-block
.<button type="submit" class="btn btn-primary mx-auto d-block">Submit</button>
Você pode considerar que todos os navegadores suportam totalmente as configurações de margem automática de acordo com esta resposta Suporte do navegador para margem: automático portanto é seguro usar
A classe bootstrap 4
text-center
também é uma solução muito boa, mas precisa de um elemento pai wrapper. A vantagem de usar a margem automática é que isso pode ser feito diretamente no próprio elemento do botão.fonte
Aqui está o HTML completo que uso para centralizar por botão no formulário Bootsrap após fechar o grupo de formulários:
<div class="form-row text-center"> <div class="col-12"> <button type="submit" class="btn btn-primary">Submit</button> </div> </div>
fonte
Use a
text-center
classe no contêiner pai para Bootstrap 4fonte
O que funcionou para mim foi (adapte "css / style.css" ao seu caminho css):
HTML principal:
<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
HTML do corpo:
<div class="container"> <div class="row"> <div class="mycentered-text"> <button class="btn btn-default"> Login </button> </div> </div> </div>
Css:
.mycentered-text { text-align:center }
fonte
para um botão em uma barra de navegação recolhida, nada acima funcionou para mim, então no meu arquivo css eu fiz ...
.navbar button { margin:auto; }
e funcionou !!
fonte
você também pode encerrar com uma classe H ou classe P com um atributo text-center
fonte