Eu tenho um código de trabalho aqui: http://jsfiddle.net/WVm5d/ (pode ser necessário aumentar a janela de resultados para ver o efeito central do alinhamento)
Questão
O código funciona bem, mas eu não gosto de ter display: table;
. É a única maneira que eu poderia fazer o centro de alinhamento da classe de embalagem. Eu acho que seria melhor se houvesse uma maneira de usar display: block;
ou display: inline-block;
. É possível resolver o centro de alinhamento de outra maneira?
Adicionar um fixo ao contêiner não é uma opção para mim.
Também colarei meu código aqui se o link do JS Fiddle for quebrado no futuro:
body {
background: #bbb;
}
.wrap {
background: #aaa;
margin: 0 auto;
display: table;
overflow: hidden;
}
.sidebar {
width: 200px;
float: left;
background: #eee;
}
.container {
margin: 0 auto;
background: #ddd;
display: block;
float: left;
padding: 5px;
}
.box {
background: #eee;
border: 1px solid #ccc;
padding: 10px;
margin: 5px;
float: left;
}
.box:nth-child(3n+1) {
clear: left;
}
<div class="wrap">
<div class="sidebar">
Sidebar
</div>
<div class="container">
<div class="box">
Height1
</div>
<div class="box">
Height2<br />
Height2
</div>
<div class="box">
Height3<br />
Height3<br />
Height3
</div>
<div class="box">
Height1
</div>
<div class="box">
Height2<br />
Height2
</div>
<div class="box">
Height3<br />
Height3<br />
Height3
</div>
</div>
<div class="sidebar">
Sidebar
</div>
</div>
Tente isso. Eu adicionei
text-align: center
ao corpo edisplay:inline-block
ao embrulho e, em seguida, removi seudisplay: table
fonte
white-space: nowrap;
eles também.body
centro alinhado ao texto? Isso soa como um enorme exagero para mimSe você tiver um
<div>
comtext-align:center;
, qualquer texto dentro dele será centralizado em relação à largura desse elemento de contêiner.inline-block
elementos são tratados como texto para esse fim, para que também sejam centralizados.fonte
Você também pode fazer isso com o posicionamento, definir div pai como relativo e div filho como absoluto.
fonte
Você não precisa usar "display: table". O motivo da sua margem: 0 tentativa de centralização automática não funcionar é porque você não especificou uma largura.
Isso funcionará bem:
Você não precisa especificar display: block, pois essa div será bloqueada por padrão. Você também pode provavelmente perder o estouro: oculto.
fonte
Semelhante à resposta do @ vijayscode, isso centralizará horizontalmente um elemento de bloco embutido (mas sem a necessidade de modificar também os estilos de seus pais):
fonte
Acabei de alterar 2 parâmetros:
Demonstração ao vivo
fonte
Ótimo artigo, descobri que o que funcionou melhor para mim foi adicionar um% ao tamanho
fonte
Apenas use:
line-height:50px
Substitua "50px" pela mesma altura da sua div.
fonte
line-height
.text-align: center;
. O ajuste da altura da linha é uma solução para centralização vertical, embora não seja uma solução muito robusta para um bloco em linha.