Como centralizar uma div com Bootstrap2?

84

http://twitter.github.com/bootstrap/scaffolding.html

Eu tentei como todas as combinações:

<div class="row">
  <div class="span7 offset5"> box </div>
</div>

ou

<div class="container">
  <div class="row">
    <div class="span7 offset5"> box </div>
  </div>  
</div>

mudou os números de intervalo e deslocamento ...

Mas não consigo colocar uma caixa simples perfeitamente centrada em uma página :(

Eu só quero uma caixa de 6 colunas centralizada ...


editar:

fez isso com

<div class="container">
  <div class="row" id="login-container">
    <div class="span8 offset2">
       box
    </div>
  </div>
</div>

Mas a caixa é muito larga, há alguma maneira de fazer isso com o span7?

span7 offset2dá preenchimento extra à esquerda span7 offset3preenchimento extra à direita ...

Alex
fonte
Você deseja centralizar uma caixa horizontalmente na página? Como a containerclasse já faz isso, pensei que você poderia estar procurando centralizar uma caixa menor. Ou você está olhando para centralizar uma caixa horizontal e verticalmente na página?
Andres Ilich
14
uma caixa de coisa que você diz? . . . .aqui no mundo do desenvolvedor, chamamos isso de div
pythonian29033
Qual versão do Bootstrap você estava usando? deve estar refletido no título, pois as pessoas que procuram isso acabarão aqui e verão o código desatualizado.
JGallardo

Respostas:

46

além de diminuir a própria div para o tamanho desejado, reduzindo o tamanho espaço assim ... class="span6 offset3", class="span4 offset4"etc ... algo tão simples como style="text-align: center"na div poderia ter o efeito que você está procurando

você não pode usar span7 com qualquer deslocamento definido e obter o span centralizado na página (porque os spans totais = 12)

csturtz
fonte
12
Considere a resposta de Zuhaib Ali. text-align: center não funciona para centralizar elementos dentro de um <div>. A classe offset * não está centralizando verdadeiramente os componentes. Está apenas criando a ilusão de centramento. Você pode verificar isso redimensionando a janela e ver se os componentes não permanecem centralizados. Quando você aplica o método de Zuhaib Ali, os componentes permanecem centralizados.
BigSauce
Em vez de adicionar estilo embutido (style = "text-align: center"), adicione a classe "center-block" e obtenha conteúdo centralizado dentro de seu div centralizado.
Shawn Taylor
col-md-4 ou col-lg-4 é igual a uma margem: 0 auto; ?
jruzafa
165

Os spans do Bootstrap são flutuados para a esquerda. Para centralizá-los, basta substituir esse comportamento. Eu faço isso adicionando isto à minha folha de estilo:

.center {
     float: none;
     margin-left: auto;
     margin-right: auto;
}

Se você tiver essa classe definida, basta adicioná-la ao intervalo e pronto.

<div class="span7 center"> box </div>

Observe que esta classe central personalizada deve ser definida após o bootstrap css. Você poderia usar, !importantmas isso não é recomendado.

Zuhaib Ali
fonte
5
SIM! Obrigada, Zuhaib! Funcionou perfeitamente. Esta resposta deve ser votada como a resposta correta para esta questão.
BigSauce
@ZuhaibAli Adicionando float: none;consertar meu problema.
SIFE
1
Estou usando Rails, então só quero destacar que em application.css, adicione *= require bootstrap.min before *= require_self and*= require_tree
2
Isso não funcionou para mim, mas adicionar display: tablepareceu consertar
Peter Berg
1
Ótima resposta! Trabalhando com isso de agora em diante.
serv-bot 22 de
34

Bootstrap3 tem a .center-blockclasse que você pode usar. É definido como

.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

Documentação aqui .

Casey
fonte
20

Se você quiser usar o bootstrap completo (e não o modo auto esquerda / direita), você precisa de um padrão que caiba em 12 colunas, por exemplo, 2 espaços em branco, 8 conteúdo, 2 espaços em branco. É isso que essa configuração fará. Ele cobre apenas as variantes -md- , tendo a ajustá -lo em tamanho real para pequeno adicionando col-xs-12

<div class="container">
  <div class="col-md-8 col-md-offset-2">
     box
  </div>
</div>
Craig
fonte
essa é uma maneira válida de centralizar divs no boostrap?
Gavindra Kalikapersaud
1
O conteúdo da div não é centralizado, mas a própria div é.
Craig
8

Parece que você só queria centralizar um único contêiner. A estrutura de bootstrap pode estar complicando demais aquele exemplo, você poderia ter apenas um div autônomo com seu próprio estilo, algo como:

<div class="login-container">
  <!-- Your Login Form -->
</div>

e estilo:

.login-container {
  margin: 0 auto;
  width: 400px; /* Whatever exact width you are looking for (not bound by preset bootstrap widths) */
}

Isso deve funcionar bem se você estiver aninhado em algum lugar dentro de um .containerdiv bootstrap .

cstrat
fonte
3

adicione o conteúdo central da classe

/** Center the contents of the element **/
.centercontents {
    text-align: center !important;
}
mrpix
fonte
0

O código @ZuhaibAli meio que funciona para mim, mas eu mudei um pouco:

Eu criei uma nova classe em css

.center {
     float: none;
     margin-left: auto;
     margin-right: auto;
}

então o div se torna

<div class="center col-md-6"></div>

Eu adicionei col-md-6 para a largura da própria div, o que nesta situação significa que a div tem a metade do tamanho, há 1 -12 col md no bootstrap.

Jakson
fonte
0

Siga esta orientação https://getbootstrap.com/docs/3.3/css/

Usar .center-block

.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
core114
fonte
0

envolva o div em um div pai com classe e rowdepois adicione estilo margin:0 auto;ao div

<div class="row">
  <div style="margin: 0 auto;">center</div>
</div>
Mahmoud Farahat
fonte