Tengo un código de trabajo aquí: http://jsfiddle.net/WVm5d/ (es posible que deba agrandar la ventana de resultados para ver el efecto de alineación central)
Pregunta
El código funciona bien pero no me gusta tenerlo display: table;
. Es la única forma en que podría alinear el centro de clase envolvente. Creo que sería mejor si hubiera una forma de usar display: block;
o display: inline-block;
. ¿Es posible resolver el centro de alineación de otra manera?
Agregar un fijo con el contenedor no es una opción para mí.
También pegaré mi código aquí si el enlace JS Fiddle se rompe en el 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>
Prueba esto. Agregué
text-align: center
al cuerpo ydisplay:inline-block
para envolver, y luego eliminé tudisplay: table
fuente
white-space: nowrap;
en ellos también.body
estén alineados con el centro del texto? esto me parece una exageración enormeSi tiene un
<div>
context-align:center;
, entonces cualquier texto dentro de él estará centrado con respecto al ancho de ese elemento contenedor.inline-block
Los elementos se tratan como texto para este propósito, por lo que también se centrarán.fuente
También puede hacer esto con el posicionamiento, establezca el div padre en relativo y el div hijo en absoluto.
fuente
No necesita usar "display: table". La razón por la que su margen: el intento de centrado automático 0 no funciona es porque no especificó un ancho.
Esto funcionará bien:
No necesita especificar display: block ya que ese div se bloqueará de manera predeterminada. Probablemente también pueda perder el desbordamiento: oculto.
fuente
Similar a la respuesta de @ vijayscode, esto centrará horizontalmente un elemento de bloque en línea (pero sin necesidad de modificar también los estilos de sus padres):
fuente
Acabo de cambiar 2 parámetros:
Demo en vivo
fuente
El gran artículo que encontré que lo que mejor funcionó para mí fue agregar un% al tamaño
fuente
Solo usa:
line-height:50px
Reemplace "50px" con la misma altura que su div.
fuente
line-height
.text-align: center;
. Ajustar la altura de la línea es una solución para el centrado vertical, aunque no es una solución muy robusta para un bloque en línea.