Guía rápida de Flexbox
Flexbox es un sistema de elementos flexibles los cuales se adaptan y colocan automáticamente haciendo más fácil personalizar diseños responsivos. Está pensando para diseños en una sola dirección, ya sea filas y columnas. En Flexbox tenemos los “flex containers”, que es el elemento que contiene los elementos flexibles y los “flex items” que son los elementos dentro del “flex container”.
Estructura básica para utilizar Flexbox
<div class="flex-container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
*{
box-sizing: border-box;
}
.flex-container{
display: flex;
}
Atributos para indicar si utilizamos renglones o columnas
flex-direction: column;
flex-direction: row;
flex-direction: row-reverse;
flex-direction: column-reverse;
Permitir cambio de linea o no
flex-wrap: wrap;
flex-wrap: nowrap;
Centrar objetos de manera horizontal
.flex-container{
display: flex;
justify-content: center;
}
Alinear objetos a la izquierda
.flex-container{
display: flex;
justify-content: flex-start;
}
Alinear objetos a la derecha
.flex-container{
display: flex;
justify-content: flex-end;
}
Distribuir los objetos de manera uniforme, pero alineados a la izquierda y derecha
.flex-container{
display: flex;
justify-content: space-between;
}
Distribuir los objetos de manera uniforme, dejando espacio a la izquierda y derecha
.flex-container{
display: flex;
justify-content: space-around;
}
Centrar objetos de manera vertical
.flex-container{
display: flex;
align-items: center;
height: 300px;
}
Alinear hacia arriba los objetos (vertical)
.flex-container{
display: flex;
align-items: flex-start;
height: 300px;
}
Alinear hacia abajo los objetos (vertical)
.flex-container{
display: flex;
align-items: flex-end;
height: 300px;
}
Elementos ocupan todo el espacio vertical
<div class=“flex-container”>
<div style=“order: 2; background-color: red;”>1</div>
<div style=“order: 1; background-color: blue;”>2</div>
<div style=“order: 4; background-color: green;”>3</div>
<div style=“order: 3; background-color: yellow;”>4</div>
</div>
Definir si un elemento ocupará más espacio que el otro
<div class=“flex-container”>
<div style=“flex-grow: 1; background-color: red;”>1</div>
<div style=“flex-grow: 4; background-color: blue;”>2</div>
<div style=“flex-grow: 1; background-color: green;”>3</div>
<div style=“flex-grow: 4; background-color: yellow;”>4</div>
</div>
Definir el mínimo que debe medir un elemento
<div style="flex-basis: 400px; background-color: red;">1</div>
Centrado perfecto
.flex-container{
display: flex;
height: 300px;
justify-content: center;
align-items: center;
}
Definir el porcentaje de espacio que ocupará cada elemento
<div class=“flex-container”>
<div style=“flex: 30%; background-color: red;”>1</div>
<div style=“flex: 70%;; background-color: blue;”>2</div>
</div>