6.1 Propiedad flex-direction
Flexbox proporciona herramientas flexibles y potentes para crear diseños adaptativos. Una parte importante de este sistema son los ejes de disposición, que determinan cómo se colocarán los elementos Flex dentro del contenedor Flex. A continuación, veremos en detalle las propiedades flex-direction y flex-wrap, que controlan la dirección de los ejes y el comportamiento de los elementos Flex en caso de desbordamiento.
La propiedad flex-direction define la dirección del eje principal a lo largo del cual se dispondrán los elementos Flex. Esta dirección puede ser horizontal o vertical, así como directa o inversa.
Valores:
row: el eje principal va horizontalmente de izquierda a derecha (valor por defecto)row-reverse: el eje principal va horizontalmente de derecha a izquierdacolumn: el eje principal va verticalmente de arriba a abajocolumn-reverse: el eje principal va verticalmente de abajo hacia arriba
Ejemplo de uso
1. Los elementos se disponen horizontalmente:
.container-row {
display: flex;
flex-direction: row;
border: 2px solid #000;
padding: 10px;
}
.container-row-reverse {
display: flex;
flex-direction: row-reverse;
border: 2px solid #000;
padding: 10px;
}
.item {
background-color: #3498db;
color: white;
padding: 10px;
margin: 5px;
}
<div class="container-row">
<div class="item">Elemento 1</div>
<div class="item">Elemento 2</div>
<div class="item">Elemento 3</div>
</div>
<div class="container-row-reverse">
<div class="item">Elemento 1</div>
<div class="item">Elemento 2</div>
<div class="item">Elemento 3</div>
</div>
2. Los elementos se disponen verticalmente:
.container-column {
display: flex;
flex-direction: column;
border: 2px solid #000;
padding: 10px;
}
.container-column-reverse {
display: flex;
flex-direction: column-reverse;
border: 2px solid #000;
padding: 10px;
}
.item {
background-color: #3498db;
color: white;
padding: 10px;
margin: 5px;
}
<div class="container-column">
<div class="item">Elemento 1</div>
<div class="item">Elemento 2</div>
<div class="item">Elemento 3</div>
</div>
<div class="container-column-reverse">
<div class="item">Elemento 1</div>
<div class="item">Elemento 2</div>
<div class="item">Elemento 3</div>
</div>
Explicación del código:
.container-row: los elementos se disponen horizontalmente de izquierda a derecha.container-row-reverse: los elementos se disponen horizontalmente de derecha a izquierda.container-column: los elementos se disponen verticalmente de arriba a abajo.container-column-reverse: los elementos se disponen verticalmente de abajo hacia arriba
6.2 Propiedad flex-wrap
La propiedad flex-wrap determina si los elementos Flex se trasladarán a una nueva línea/columna, si no caben en un solo renglón. Esto es especialmente útil para crear diseños adaptativos, donde el tamaño del contenedor puede cambiar dependiendo del dispositivo o pantalla.
Valores
nowrap: los elementos no se trasladan y se disponen en una sola línea/columna (valor por defecto)wrap: los elementos se trasladan a una nueva línea/columna si es necesariowrap-reverse: los elementos se trasladan a una nueva línea/columna en orden inverso
Ejemplos de uso
Valor nowrap:
Los elementos no se trasladan y se disponen en una sola línea/columna (valor por defecto).
.container-nowrap {
display: flex;
flex-wrap: nowrap;
border: 2px solid #000;
padding: 10px;
width: 300px;
}
.item {
background-color: #3498db;
color: white;
padding: 10px;
margin: 5px;
width: 100px;
}
<div class="container-nowrap">
<div class="item">Elemento 1</div>
<div class="item">Elemento 2</div>
<div class="item">Elemento 3</div>
<div class="item">Elemento 4</div>
</div>
Valor wrap:
Los elementos se trasladan a una nueva línea/columna si es necesario.
.container-wrap {
display: flex;
flex-wrap: wrap;
border: 2px solid #000;
padding: 10px;
width: 300px;
}
.item {
background-color: #3498db;
color: white;
padding: 10px;
margin: 5px;
width: 100px;
}
<div class="container-wrap">
<div class="item">Elemento 1</div>
<div class="item">Elemento 2</div>
<div class="item">Elemento 3</div>
<div class="item">Elemento 4</div>
</div>
Valor wrap-reverse:
Los elementos se trasladan a una nueva línea/columna en orden inverso.
.container-wrap-reverse {
display: flex;
flex-wrap: wrap-reverse;
border: 2px solid #000;
padding: 10px;
width: 300px;
}
.item {
background-color: #3498db;
color: white;
padding: 10px;
margin: 5px;
width: 100px;
}
<div class="container-wrap-reverse">
<div class="item">Elemento 1</div>
<div class="item">Elemento 2</div>
<div class="item">Elemento 3</div>
<div class="item">Elemento 4</div>
</div>
Explicación del código:
.container-nowrap: Los elementos Flex se disponen en una sola línea, incluso si se salen del contenedor.container-wrap: Los elementos Flex se trasladan a una nueva línea si no caben en una sola línea.container-wrap-reverse: Los elementos Flex se trasladan a una nueva línea en orden inverso
6.3 Uso de flex-direction y flex-wrap
Las propiedades flex-direction y flex-wrap pueden combinarse utilizando la propiedad abreviada flex-flow. Esta propiedad permite establecer la dirección del eje y el traslado de elementos al mismo tiempo.
Sintaxis:
.container {
flex-flow: [flex-direction] [flex-wrap];
}
Ejemplo de uso:
.container {
display: flex;
flex-flow: row wrap;
border: 2px solid #000;
padding: 10px;
width: 300px;
}
.item {
background-color: #3498db;
color: white;
padding: 10px;
margin: 5px;
width: 100px;
}
<div class="container">
<div class="item">Elemento 1</div>
<div class="item">Elemento 2</div>
<div class="item">Elemento 3</div>
<div class="item">Elemento 4</div>
<div class="item">Elemento 5</div>
</div>
Explicación del código:
-
.container: Contenedor Flex con uso combinado deflex-direction: row;yflex-wrap: wrap;, lo que significa que los elementos se disponen horizontalmente y se trasladan a una nueva línea si es necesario
GO TO FULL VERSION