layout-2
justify-content: center y align-items: center en CSS
Estas dos propiedades son fundamentales en Flexbox y se usan para centrar elementos, pero actúan en ejes diferentes. Aquí te explico su propósito y sus diferencias:
justify-content: center
¿Qué hace?
Alinea los elementos a lo largo del eje principal (main axis)
Centra los elementos horizontalmente por defecto (si
flex-direction: row)
Ejemplo visual:
.contenedor {
display: flex;
justify-content: center; /* Centra horizontalmente */
}[ [Elemento] ]
←─── eje principal ───→align-items: center
¿Qué hace?
Alinea los elementos a lo largo del eje transversal (cross axis)
Centra los elementos verticalmente por defecto (si
flex-direction: row)
Ejemplo visual:
.contenedor {
display: flex;
align-items: center; /* Centra verticalmente */
height: 200px;
} ↑
│ [Elemento]
eje │
transversal
↓PRINCIPAL DIFERENCIA
| Propiedad | Eje que controla | Dirección por defecto |
|---|---|---|
justify-content | Eje principal (main axis) | Horizontal (fila) |
align-items | Eje transversal (cross axis) | Vertical (fila) |
Te ayudo a justificar el contenido usando Flexbox de la manera más sencilla. El "justificar contenido" en Flexbox se refiere a la propiedad justify-content que distribuye los elementos a lo largo del eje principal.
Para tu código, hay varias formas de usar Flexbox. Te mostraré las más útiles y sencillas:
Opción 1: Centrar todo vertical y horizontalmente
.card-body { display: flex; flex-direction: column; justify-content: center; /* Centra verticalmente */ align-items: center; /* Centra horizontalmente */ text-align: center; /* Para que el texto también se centre */ min-height: 300px; /* Necesario para ver el efecto vertical */ }
Opción 2: Distribuir con espacio entre elementos
.card-body { display: flex; flex-direction: column; justify-content: space-between; /* Espacio automático entre elementos */ align-items: flex-start; /* Alinea a la izquierda */ min-height: 300px; } /* Opcional: si quieres que el botón se alinee a la derecha */ .card-body button { align-self: flex-end; /* Solo el botón se va a la derecha */ }
Opción 3: Espacio alrededor con el primer elemento arriba
.card-body { display: flex; flex-direction: column; justify-content: space-around; /* Espacio alrededor de cada elemento */ min-height: 300px; }
Código completo aplicado a tu HTML:
.card-body { display: flex; flex-direction: column; justify-content: center; /* Cambia esto según lo que necesites */ align-items: center; text-align: center; min-height: 250px; padding: 20px; } .card-body p { color: #6c757d; line-height: 1.5; margin: 0; /* Quitamos el margin-bottom que tenías */ } .card-body h2 { font-size: 24px; color: #212529; margin: 0 0 10px 0; /* Ajustamos el margen */ } .card-body small { margin: 10px 0; } .card-body button { margin-top: 15px; }
Los valores más útiles de justify-content:
flex-start(default): Elementos al principioflex-end: Elementos al finalcenter: Elementos centradosspace-between: Espacio igual entre elementos (primero al inicio, último al final)space-around: Espacio igual alrededor de cada elementospace-evenly: Espacio completamente igual entre todos
¿Qué tipo de justificación necesitas específicamente? Así puedo ayudarte con el valor exacto que buscas.
<!DOCTYPE html>
Comentarios
Publicar un comentario