Contenedores Flex CSS
Un contenedor se vuelve flexible al establecer la propiedad display
con el valor flex
.
.contenedor-flex {
display: flex;
}
Las propiedades para los contenedores Flex son:
flex-direction
flex-wrap
flex-flow
justify-content
align-items
align-content
La propiedad flex-direction
La propiedad flex-direction establece al contenedor en que dirección debe apilar los elementos flex.
Los valores de la propiedad flex-direcction son:
row
row-reverse
column
column-reverse
Para fines de visualización del ejemplo especificamos también las propiedades del los elementos flex:
.contenedor-flex {
display: flex;
flex-direction: row;
}
.contenedor-flex > div {
background-color: #f1f1f1;
width: 63px;
margin: 10px;
padding: 20px;
font-size: 30px;
}
El valor row
apila los elementos flex horizontalmente, de izquerda hacia la derecha. este el valor predterminado:
El valor row-reverse
apila los elementos flex horizontalmente, pero de derecha hacia la izquierda.
El valor column
apila los elementos flex verticalmente, de arriba hacia abajo:
El valor column-reverse
apila los elementos flex verticalmente, pero de abajo hacia arriba:
La propiedad flex-wrap
La propiedad flex-wrap
establece si el elemento flex debe ajustarse o no.
.contenedor-flex {
display: flex;
flex-wrap: wrap;
}
El siguiente ejemplo tiene 12 elementos flex para demostrar el comportamiento de la propiedad flex-wrap
.
El valor wrap
establece que el elemento flex se ajustará si es necesario:
El valor wrap-reverse
establece que el elemento flex se ajustará si es necesario, pero en orden inverso:
El valor nowrap
establece que el elemento flex no será ajustado, este es el valor por defecto:
La propiedad flex-flow
La propiedad flex-flow
es una propiedad abreviada para establecer los valores tanto de flex-direction
como de flex-wrap
:
.contenedor-flex {
display: flex;
flex-flow: row wrap;
}
Muestra:
La propiedad justify-content
La propiedad justify-content
es utilizado para alinear o justicar horizontalmente los elementos flex.
El valor center
alinea los elementos flex en el centro del contenedor:
.contenedor-flex { display: flex; justify-content: center; }
Muestra:
El valor flex-start
alinea los elementos flex al inicio del contenedor, este es el valor por defecto:
.contenedor-flex { display: flex; justify-content: flex-start; }
Muestra:
El valor flex-end
alinea los elementos flex al final del contenedor:
.contenedor-flex { display: flex; justify-content: flex-end; }
Muestra:
El valor space-around
muestra los elementos flex con espacio antes entre y despues de las líneas:
.contenedor-flex { display: flex; justify-content: space-around; }
Muestra:
El valor space-between
muestra los elementos flex con espacio entre las líneas:
.contenedor-flex { display: flex; justify-content: space-between; }
Muestra:
La propiedad align-items
La propiedead align-items
alinea (en sentido verticalmente) los elemetnos flex.
Para fines de mostrar el compartamiento de esta propiedad, establecemos los siguientes contenedores con una altura de 150 pixeles.
El valor center
alinea los elementos flex en medio de un contenedor:
.contenedor-flex {
display: flex;
align-items: center;
}
Muestra:
El valor flex-start
alinea los elementos flex en lo alto del contenedor:
El valor flex-end
alinea los elementos flex en lo bajo del contenedor:
El valor stretch
estira los elementos flex para llenar el contenedor:
El valor baseline
alinea los elementos como su línea base:
Nota: Para fines de mostrar el comportamiento de la propiedad baseline, se modifica el tamaño de letra para cada elemento flex.
La propiedad align-content
La propiedad align-content
es usada para alinear las líneas de los elementos flex.
Para fines de mostrar el cortamiento de la propiedad align-content
se establece el contenedor con un alto de 400 pixeles, con la propiedad flex-wrap
.
.contenedor-flex {
display: flex;
height: 400px;
flex-wrap: wrap;
align-content: space-between;
background-color: DodgerBlue;
}
.contenedor-flex > div { background-color: #f1f1f1;
width: 100px;
margin: 10px;
text-align: center;
line-height: 75px;
font-size: 30px;
}
El valor space-between
muestra las líneas flex con espaciado igual entre ellas:
El valor space-around
muestra las líneas flex con espaciado antes, entre y después de ellas:
El valor stretch
estira las líneas flex para ocupar el espacio restante, este es el valor por defecto:
El valor center
muestra las líneas en medio del contenedor:
El valor flex-start
muestra las líneas al inicio del contenedor:
El valor flex-end
muestra las líneas al final del contenedor:
Centrado Perfecto
En el siguiente ejemplo, se resuelve un problema muy común: un centrado perfecto:
Solución: Establecer las propiedades justify-content y align-item en center, y el elemento flex será centrado perfectamente:
.contenedor-flex {
display: flex;
height: 400px;
justify-content: center;
align-items: center;
}
Muestra: