Flexbox /
Flexible Box

Nomenklatura

flex container

flex item

flex item

cross axis

main axis

main size

cross size

main start

main end

cross start

cross end

Dostępne właściwości

flex container

flex item

  • display

  • flex-direction

  • flex-wrap

  • flex-flow

  • justify-content

  • align-items

  • align-content

  • order

  • flex-grow

  • flex-shrink

  • flex-basis

  • flex

  • align-self

.flex-container {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
}

display: flex | inline-flex

.flex-container {
  -webkit-flex-direction: row-reverse; /* Safari 6.1+ */
  flex-direction: row-reverse; 
}

flex-direction: row | row-reverse | column | column-reverse

1         2         3

3         2         1

1

2

3

3

2

1

row

row-reverse

column

column-reverse

.flex-container {
  -webkit-flex-wrap: wrap-reverse;
  flex-wrap: wrap-reverse;
}

flex-wrap: nowrap | wrap | wrap-reverse​

1         2         3

nowrap

1          2       

wrap

3

1          2       

wrap-reverse

3

.flex-container {
  -webkit-flex-flow: wrap row;
  flex-flow: wrap row; 
}

flex-flow: <flex-direction>  <flex-wrap>

.flex-container {
  -webkit-justify-content: space-around; /* Safari 6.1+ */
  justify-content: space-around;  
}

justify-content: flex-start | flex-end | center | space-between |                                       space-around | space-evenly

flex-start

flex-end

center

space-between

space-around

space-evenly

.flex-container {
  -webkit-align-items: center; /* Safari 7.0+ */
  align-items: center; 
}

align-items: flex-start | flex-end | center | baseline | stretch

flex-start

flex-end

center

baseline

stretch

text

text

text

.flex-container {
  -webkit-align-content: center; /* Safari 7.0+ */
  align-content: center; 
}

align-content: flex-start | flex-end | center | space-between |

                          space-around | stretch

flex-start

flex-end

center

space-between

space-around

stretch

.flex-item-1 {
  -webkit-order: 2; /* Safari 6.1+ */
  order: 2;
}

.flex-item-2 {
  -webkit-order: 1; /* Safari 6.1+ */
  order: 1;
}

order: <integer>

1

2

3

1

1

1

1

3

-1

2

4

10

.flex-item:nth-of-type(1),
.flex-item:nth-of-type(3) {
  -webkit-flex-grow: 1;
  flex-grow: 1; 
}

.flex-item:nth-of-type(2) {
  -webkit-flex-grow: 3;
  flex-grow: 3; 
}

flex-grow: <number>   (default 0)

1

1

1

1

3

1

.flex-item:nth-of-type(1),
.flex-item:nth-of-type(3) {
  -webkit-flex-shrink: 1;
  flex-shrink: 1; 
}

.flex-item:nth-of-type(2) {
  -webkit-flex-shrink: 3;
  flex-shrink: 3; 
}

flex-shrink: <number>   (default 1)

1

1

1

1

3

1

.flex-item:nth-of-type(2) {
  -webkit-flex-basis: 20px;
  flex-basis: 20px; 
}

flex-basis: <length> | auto   (default auto)

20px

.flex-item {
  -webkit-flex: 0 1 auto;
  flex: 0 1 auto;
}

flex: none | <flex-grow> <flex-shrink> <flex-basis>

.flex-item {
  -webkit-align-self: center; /* Safari 7.0+ */
  align-self: center; 
}

align-self: flex-start | flex-end | center | baseline | stretch

flex-start

flex-end

center

baseline

stretch

text

text

text

Przykład 1

galeria zdjęć

  .flex-container {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    flex-direction: row;
  }

  .flex-item {
    margin: 10px;
  }

Przykład 2

layout strony

  body  {
    display: flex;
    flex-direction: column;
  }

  header,
  footer {
    flex: none;
  }

  main {
    display:flex;
    flex-direction: row;
    flex-wrap: wrap;
  }

header

main content

footer

Przykład 3

responsywny layout strony

body {
  display: flex;
  flex-direction: column;
}

main {
  display: flex;
  flex-direction: row;
}

main aside {
  flex: 1;
}

main div {
  flex: 2;
}

@media screen and (max-width: 760px) {
  main {
    flex-direction: column;
 }
}

header

main div

footer

main aside

header

main div

footer

main aside

Przykład 4

blok tekstu ze zdjęciem

  .flex-container {
    display: flex;
    align-items: flex-start;
  }

  .content {
    flex: 1;
  }

image

content

Przykład 5

wyśrodkowanie w pionie i poziomie

  .flex-container {
    display: flex;
    justify-content: center;
    align-items: center;
  }
Made with Slides.com