En este tema, exploraremos las propiedades del contenedor flex, una parte fundamental de la técnica de diseño de Flexbox. Estas propiedades permiten controlar la disposición y el comportamiento de los elementos hijos dentro de un contenedor flex. A lo largo de esta sección, aprenderás cómo utilizar estas propiedades para crear diseños flexibles y adaptativos.
- display: flex
La propiedad display: flex
convierte un elemento en un contenedor flex. Todos los elementos hijos de este contenedor se convierten automáticamente en elementos flexibles.
Ejemplo Práctico
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .container { display: flex; background-color: lightgray; } .item { background-color: cornflowerblue; padding: 20px; margin: 10px; color: white; } </style> <title>Propiedades del Contenedor Flex</title> </head> <body> <div class="container"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> </div> </body> </html>
- flex-direction
La propiedad flex-direction
define la dirección en la que los elementos flexibles se colocan dentro del contenedor. Los valores posibles son:
row
(predeterminado): Los elementos se colocan en una fila horizontal.row-reverse
: Los elementos se colocan en una fila horizontal, pero en orden inverso.column
: Los elementos se colocan en una columna vertical.column-reverse
: Los elementos se colocan en una columna vertical, pero en orden inverso.
Ejemplo Práctico
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .container { display: flex; flex-direction: column; background-color: lightgray; } .item { background-color: cornflowerblue; padding: 20px; margin: 10px; color: white; } </style> <title>Propiedades del Contenedor Flex</title> </head> <body> <div class="container"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> </div> </body> </html>
- flex-wrap
La propiedad flex-wrap
controla si los elementos flexibles deben ajustarse en una sola línea o pueden romperse en varias líneas. Los valores posibles son:
nowrap
(predeterminado): Todos los elementos se colocan en una sola línea.wrap
: Los elementos se ajustan en varias líneas, si es necesario.wrap-reverse
: Los elementos se ajustan en varias líneas, pero en orden inverso.
Ejemplo Práctico
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .container { display: flex; flex-wrap: wrap; background-color: lightgray; } .item { background-color: cornflowerblue; padding: 20px; margin: 10px; color: white; width: 200px; } </style> <title>Propiedades del Contenedor Flex</title> </head> <body> <div class="container"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> <div class="item">Item 4</div> <div class="item">Item 5</div> </div> </body> </html>
- justify-content
La propiedad justify-content
alinea los elementos flexibles a lo largo del eje principal (horizontal por defecto). Los valores posibles son:
flex-start
(predeterminado): Los elementos se alinean al inicio del contenedor.flex-end
: Los elementos se alinean al final del contenedor.center
: Los elementos se centran en el contenedor.space-between
: Los elementos se distribuyen uniformemente con espacio entre ellos.space-around
: Los elementos se distribuyen uniformemente con espacio alrededor de ellos.space-evenly
: Los elementos se distribuyen uniformemente con espacio igual entre ellos.
.container { display: flex; justify-content: center; /* o flex-start, flex-end, space-between, space-around, space-evenly */ }
Ejemplo Práctico
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .container { display: flex; justify-content: space-between; background-color: lightgray; } .item { background-color: cornflowerblue; padding: 20px; margin: 10px; color: white; } </style> <title>Propiedades del Contenedor Flex</title> </head> <body> <div class="container"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> </div> </body> </html>
- align-items
La propiedad align-items
alinea los elementos flexibles a lo largo del eje transversal (vertical por defecto). Los valores posibles son:
stretch
(predeterminado): Los elementos se estiran para llenar el contenedor.flex-start
: Los elementos se alinean al inicio del contenedor.flex-end
: Los elementos se alinean al final del contenedor.center
: Los elementos se centran en el contenedor.baseline
: Los elementos se alinean según su línea base.
Ejemplo Práctico
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .container { display: flex; align-items: center; height: 200px; background-color: lightgray; } .item { background-color: cornflowerblue; padding: 20px; margin: 10px; color: white; } </style> <title>Propiedades del Contenedor Flex</title> </head> <body> <div class="container"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> </div> </body> </html>
- align-content
La propiedad align-content
alinea las líneas del contenedor flex cuando hay espacio extra en el eje transversal. Esta propiedad solo tiene efecto cuando hay múltiples líneas de elementos flexibles. Los valores posibles son:
stretch
(predeterminado): Las líneas se estiran para llenar el contenedor.flex-start
: Las líneas se alinean al inicio del contenedor.flex-end
: Las líneas se alinean al final del contenedor.center
: Las líneas se centran en el contenedor.space-between
: Las líneas se distribuyen uniformemente con espacio entre ellas.space-around
: Las líneas se distribuyen uniformemente con espacio alrededor de ellas.space-evenly
: Las líneas se distribuyen uniformemente con espacio igual entre ellas.
.container { display: flex; flex-wrap: wrap; align-content: space-between; /* o stretch, flex-start, flex-end, center, space-around, space-evenly */ }
Ejemplo Práctico
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> .container { display: flex; flex-wrap: wrap; align-content: space-between; height: 400px; background-color: lightgray; } .item { background-color: cornflowerblue; padding: 20px; margin: 10px; color: white; width: 200px; } </style> <title>Propiedades del Contenedor Flex</title> </head> <body> <div class="container"> <div class="item">Item 1</div> <div class="item">Item 2</div> <div class="item">Item 3</div> <div class="item">Item 4</div> <div class="item">Item 5</div> </div> </body> </html>
Resumen
En esta sección, hemos cubierto las propiedades fundamentales del contenedor flex en CSS:
display: flex
: Convierte un elemento en un contenedor flex.flex-direction
: Define la dirección de los elementos flexibles.flex-wrap
: Controla si los elementos flexibles se ajustan en una o varias líneas.justify-content
: Alinea los elementos flexibles a lo largo del eje principal.align-items
: Alinea los elementos flexibles a lo largo del eje transversal.align-content
: Alinea las líneas del contenedor flex cuando hay espacio extra en el eje transversal.
Estas propiedades te permiten crear diseños flexibles y adaptativos de manera eficiente. En el próximo tema, exploraremos las propiedades de los ítems flex, que te permitirán controlar el comportamiento individual de los elementos dentro del contenedor flex.
Maestría en CSS: De Principiante a Avanzado
Módulo 1: Introducción a CSS
- ¿Qué es CSS?
- Sintaxis y Selectores de CSS
- Cómo Añadir CSS a HTML
- Propiedades Básicas de CSS
- Colores en CSS
- Unidades y Medidas en CSS
Módulo 2: Estilización de Texto y Fuentes
- Propiedades de Texto
- Propiedades de Fuentes
- Integración de Google Fonts
- Alineación y Espaciado de Texto
- Decoración y Transformación de Texto
Módulo 3: Modelo de Caja y Diseño
- Entendiendo el Modelo de Caja
- Margen y Relleno
- Borde y Contorno
- Ancho y Alto
- Tamaño de Caja
- Propiedad Display de CSS
Módulo 4: Posicionamiento y Flotación
- Propiedad Position de CSS
- Posicionamiento Estático, Relativo, Absoluto y Fijo
- Flotación y Limpieza en CSS
- Creando Diseños con Flotación
- Índice Z en CSS
Módulo 5: Flexbox
- Introducción a Flexbox
- Propiedades del Contenedor Flex
- Propiedades del Ítem Flex
- Creando Diseños con Flexbox
- Diseño Responsivo con Flexbox
Módulo 6: CSS Grid
- Introducción a CSS Grid
- Propiedades del Contenedor Grid
- Propiedades del Ítem Grid
- Creando Diseños con CSS Grid
- Diseño Responsivo con CSS Grid
Módulo 7: Técnicas Avanzadas de CSS
Módulo 8: Diseño Responsivo
- Introducción al Diseño Responsivo
- Consultas de Medios
- Tipografía Responsiva
- Imágenes Responsivas
- Diseño Mobile-First
Módulo 9: Preprocesadores y Frameworks
- Introducción a los Preprocesadores de CSS
- Conceptos Básicos de Sass
- Conceptos Básicos de Less
- Introducción a los Frameworks de CSS
- Usando Bootstrap
Módulo 10: Mejores Prácticas y Optimización
- Mejores Prácticas de CSS
- Organización del Código CSS
- Minificación de CSS
- Optimización del Rendimiento de CSS
- Depuración de CSS