Flexbox Avanzado
Clase 20 de 32 • Curso de CSS
Resumen
Aprende a dominar Flexbox con ejemplos prácticos: configura el contenedor con display: flex, centra el contenido, controla el crecimiento con flex-grow y el atajo flex, y alinea elementos con align-self. Todo enfocado en un workflow claro y listo para aplicar en tus componentes en CSS.
¿Cómo configurar el contenedor y los items en Flexbox?
Para activar el modelo de Flexbox, el primer paso es convertir el contenedor en un contexto flexible con display: flex. Así se habilitan las propiedades que permiten distribuir y alinear los elementos internos de forma eficiente. También se aplica min-height: 100px para asegurar una altura mínima, y se usa margin-bottom y padding para separar y dar aire visual.
.container {
display: flex;
min-height: 100px;
/* margin-bottom: ...; */
/* padding: ...; */
/* background: ... (gris utilizado previamente) */
}
¿Cómo se centra el texto dentro del item?
Cada elemento dentro del contenedor es un item. Para centrar su contenido horizontalmente se usa text-align: center. Además, se aplica padding para generar espacio interno, margin para separación entre tarjetas, un background azul y color: white para contraste.
.item {
text-align: center;
padding: 20px;
margin: 5px;
background: #3498db;
color: white;
}
- Activar contexto flexible con display: flex.
- Asegurar altura mínima con min-height: 100px.
- Separar bloques con margin-bottom y dar aire con padding.
- Centrar texto con text-align: center.
¿Cómo hacer que los elementos crezcan con flex-grow y flex?
Cuando hay espacio libre en el contenedor, flex-grow permite que los items crezcan para ocuparlo. Así controlas la proporción de crecimiento entre elementos vecinos de forma simple.
¿Qué hace flex-grow 0, 1 y 2?
- 0: no crece para ocupar espacio extra.
- 1: crece proporcionalmente al resto que también tiene 1.
- 2: crece el doble respecto a los que tienen 1.
.grow { /* aplicado al elemento con clase correspondiente */
flex-grow: 1;
}
Ejemplo de uso: si un item tiene .grow
con flex-grow: 1, ocupará espacio libre; si otro tiene valor 2, crecerá el doble que el de 1.
¿Cuándo usar el shorthand flex?
El atajo flex agrupa varias configuraciones en una sola línea. En el ejemplo, flex: 1 se comporta como el crecimiento proporcional visto con flex-grow.
.flex.uno { /* elemento con clases: flex y uno */
flex: 1;
}
.flex.dos { /* elemento con clases: flex y dos */
flex: 2;
}
- flex: 1 hace que el item crezca para ocupar el espacio disponible.
- flex: 2 crece el doble que los que tienen flex: 1.
- Útil cuando quieres definir crecimiento de manera breve y consistente.
¿Cómo alinear contenido con align-self?
Para alinear items de forma independiente, align-self permite posicionarlos en el eje cruzado. Con flex-start se sitúan arriba y con flex-end abajo. El alto visible se adapta al contenido y al padding aplicado.
.self.start { /* elemento con clases: self y start */
align-self: flex-start;
}
.self.end { /* elemento con clases: self y end */
align-self: flex-end;
}
- align-self: flex-start: alinea el item en la parte superior.
- align-self: flex-end: alinea el item en la parte inferior.
- El espacio visible depende del contenido y del padding del item.
¿Quieres ver más patrones con Flexbox o tienes un caso específico? Cuéntalo en los comentarios y construyamos la mejor solución paso a paso.