Flexbox.md 3.7 KB

Flexbox Tutorial

Video 2: display

  • By setting "display: flex" for a container, the immediate children become flex items.

Video 3: flex-direction

  • Sets the main axis (default: row)
    • flex-direction: row (left to right)
    • flex-direction: row-reverse (right to left)
    • flex-direction: column (top to bottom)
    • flex-direction: column-reverse (bottom to top)
  • The cross axis is perpendicular to the main axis

Video 4: wrap

  • Flex tries to squeeze in all elements on the main axis unless you specify:
    • flex-wrap: wrap (direction of cross axis)
    • flex-wrap: wrap-reverse (reverse direction of cross axis)
  • flex-wrap: wrap-reverse reverses the order on the cross axis
  • The cross axis will keep the size if possible
  • You can do calculations for the width: "width: calc(33.333%-20px)"

Video 5: order

  • Changes the order of elemens
    • order: 3 (puts element after others)
    • order: -1 (puts element before others)
  • Positive and negative values are supported
  • Selection order remains the same (when you select sth with the mouse)!

Video 6: justify-content

  • justify-content justifies the content of a container (not of the items)
  • default is flex-start
  • justify-content manages the free space in a container's main direction:
    • justify-content: flex-start (puts available space at the end)
    • justify-content: center (puts available space left and right)
    • justify-content: flex-end (puts available space at the beginning)
    • justify-content: space-between (puts available space between elements)
    • justify-content: space-around (puts available space around elements)

Video 7: align-items

  • align-items aligns the items on the cross axis
  • default is stretch
  • Options are:
    • align-items: flex-start (aligns items at the start of the cross axis)
    • align-items: center (aligns items in the center of the cross axis)
    • align-items: flex-end (aligns items at the end of the cross axis)
    • align-items: stretch (stretches item across the cross axis)
    • align-items: baseline (aligns baselines of items at the start of the cross axis)

Video 8: align-content

  • align-content justifies the content of a container (not the items)
  • default is stretch
  • align-content manages the free space in a container's cross direction:
    • align-content: flex-start (puts available space at the end)
    • align-content: center (puts available space left and right)
    • align-content: flex-end (puts available space at the beginning)
    • align-content: space-between (puts available space between elements)
    • align-content: space-around (puts available space around elements)

Video 9: align-self

  • overrides the alignment of an element over the container's setting
  • takes the same arguments as align-items

Video 10: flex

  • setting for a flex item (not a container)
  • how much extra space does an element get?

Video 11: flex-grow, flex-shrink and flex-basis

  • flex consists of three properties:
    • flex-grow (if there is extra space, how much sould the element get)
    • flex-shrink (if there is not enough room, how much more should the element shrink)
    • flex-basis (how big is the element ideally?)
  • flex: 1 5 400px is shorthand for flex-grow: 1, flex-shrink: 5, flex-basis: 400px

Video 13: Crossbrowser support and Autoprefixer

  • Flexbox has been around for come time
  • Older browsers use different keywords and show different behavior
  • Use Autoprefixer to crosscompile the CSS3