Flexbox
display: flex
El elemento que se aplica flex adopta propiedades de flex-container y a sus hijos directos se les aplicará las propiedades de flex-item.
<div class="flexcontainer">Container<div class="boxflex">Item</div><div class="boxflex">Item</div><div class="boxflex">Item</div><div class="boxflex">Item</div><div class="boxflex">Item</div></div>
Container
Item
Item
Item
Item
Item
flex-direction
row (default) | row-reverse | column | column-reverse
row: organiza los items en líneas. column: organiza los items en columnas.
flex-direction: row
1
2
3
4
5
flex-direction: row-reverse
1
2
3
4
5
flex-direction: column
1
2
3
flex-direction: column-reverse
1
2
3
flex-grow: number
El valor por defecto 0 asigna el mismo espacio para todos los items, cuando asignamos otro valor mayor que cero se asigna más espacio dinámico para el item.
1
2
3
flex-wrap
no-wrap (default) | wrap | wrap-reverse
- no-wrap: modifica el tamaño de los items para mantenerlos en la misma línea.
- wrap: respeta el tamaño de cada item y cuando no cabe en la misma línea lo envía a la línea de abajo.
- wrap-reverse: lo mismo que wrap pero envía el item en la línea de arriba. no-wrap
1
2
3
4
5
6
7
wrap
1
2
3
4
5
6
7
wrap-reverse
1
2
3
4
5
6
7
flex-flow
row nowrap (default) | column wrap
Se trata de un shorthand para cambiar los dos valores de flex-direction y flex-wrap con una única propiedad.
justify-content
flex-start (default)| flex-end | center | space-between | space-around | space-evenly
- flex-start: posiciona en el principio del main axis.
- flex-end: posiciona en el final del main axis.
- center: centra los items.
- space-between: separa lo máximo posible entre items.
- space-around: separa con el mismo margen entre items.
- space-evenly: mismo espacio entre items y los extremos.
justify-content: flex-start
1
2
3
justify-contet: flex-end
1
2
3
justify-contet: center
1
2
3
justify-content: space-between
1
2
3
justify-conent: space-around
1
2
3
justify-content: space-evenly
1
2
3
Align-items
flex-start | flex-end | center | stretch | baseline
- flex-start: fija los items en el inicio del cross axis.
- flex-end: fija los items en el final del cross axis.
- center: centra los items verticalmente.
- stretch (default): ocupa todo el alto del contenedor.
- baseline:
align-items: flex-start
1
2
3
4
5
####align-items:flex-end
1
2
3
4
5
align-items:center
Flexbox
Flexbox Flexbox Flexbox Flexbox
Flexbox Flexbox Flexbox Flexbox Flexbox Flexbox Flexbox
Flexbox Flexbox Flexbox Flexbox
FFlexbox Flexbox
Centra el punto medio de cada item.
1
2
3
4
5
align-items: stretch para que funcione no debe tener ningún valor o auto en height.
1
2
3
4
5
align-items: baseline El contenido se encuentra centrado en la misma línea.
1
2
3
4
5
align-content
flex-start | flex-end| center | stretch (default)| space-between |space-around | space-evenly
Trabaja igual que align-items pero se aplica cuando hay más de una fila.
align-content: flex-start
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
align-content: flex-end
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
align-content: center
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
align-content: stretch
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
align-content: space-between
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
align-content: space-around
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
align-content: space-evenly
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
Flexbox
align-self
auto | flex-start | flex-end | center | baseline | stretch
auto
flex-start
flex-end
center
baseline
stretch
flex
grow & shrink & basis
0 1 auto (default)
- grow: distribuye el espacio sobrante entre los items.
- basis: asigna el espacio al item dependiendo de la dirección. (row - width) (column - height)
- shrink: encoge el item tantas veces como el número asignado cuando el espacio en el viewport es más pequeño al necesario. *Para ver el efecto hay que modificar el tamaño de la ventana.
flex: 0 1 auto
flex: 1 1 auto
flex: 0 1 auto
flex: 0 1 200px
flex: 2 10 200px
flex: 0 1 200px
flex: 1 5 200px
flex: 1 1 200px
flex: 1 5 200px