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