Por alguna razón, mis divs no se centrarán horizontalmente en un div contenedor:
.row {
width: 100%;
margin: 0 auto;
}
.block {
width: 100px;
float: left;
}
<div class="row">
<div class="block">Lorem</div>
<div class="block">Ipsum</div>
<div class="block">Dolor</div>
</div>
Y a veces hay una fila div con solo un bloque div en ella. ¿Qué estoy haciendo mal?
Respuestas:
Para lograr lo que está tratando de hacer:
Considere usar en
display: inline-block
lugar defloat
.fuente
Prueba esto:
MANIFESTACIÓN
tener
margin: 0 auto;
junto conwidth: 100%
es inútil porque tu elemento ocupará todo el espacio.float: left
flotará los elementos hacia la izquierda, hasta que no quede espacio, por lo que irán a una nueva línea. Úselodisplay: inline-block
para poder mostrar elementos en línea, pero con la capacidad de proporcionar tamaño (a diferencia dedisplay: inline
donde se ignoran el ancho / alto)fuente
Las alineaciones en CSS habían sido una pesadilla. Afortunadamente, el W3C introdujo un nuevo estándar en 2009: Flexible Box . Hay un buen tutorial al respecto aquí . Personalmente lo encuentro mucho más lógico y más fácil de entender que otros métodos.
fuente
Usando FlexBox:
La última tendencia es usar Flex o CSS Grid en lugar de usar Float. Sin embargo, todavía un 1% de los navegadores no son compatibles con Flex. Pero, ¿quién se preocupa realmente por los antiguos usuarios de IE?
Violín: marque aquí
fuente
Otro ejemplo de trabajo , usando
display: inline-block
ytext-align: center
HTML :
CSS :
Violín: http://jsfiddle.net/fNvgS/
fuente
Aunque no cubre esta pregunta (porque desea alinear las
<div>
s dentro del contenedor) pero está directamente relacionada: si desea alinear solo un div horizontalmente, puede hacer esto:fuente
Si los elementos deben mostrarse en una línea y IE 6/7 no importa, considere usar
display: table
y endisplay: table-cell
lugar defloat
.inline-block
conduce a espacios horizontales entre elementos y requiere ponerlos a cero. La forma más sencilla es establecer elfont-size: 0
elemento principal y luego restaurarfont-size
los elementos secundarios que tienendisplay: inline-block
estableciendo su valor enfont-size
apx
orem
.fuente
Probé la respuesta aceptada, pero finalmente encontré que:
Funciona bien hasta ahora.
fuente
Utilizo estos dos enfoques cuando necesito manejar la alineación div horizontal.
primero ( Alineación central usando la propiedad del margen ):
Establecer los márgenes izquierdo y derecho en automático especifica que deben dividir el margen disponible por igual. La alineación central no tiene ningún efecto si el ancho es del 100%.
y el segundo:
Usar el segundo enfoque es conveniente cuando tiene varios elementos y desea que todos estén centrados en una celda de la tabla (es decir, varios botones en una celda).
fuente