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
- Default is 0
- 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
Video 14: Pure Flexbox Navigation
- Style the container and add the display: flex property
- Style the items, add flex: property
- add @media all and (max-width: ) properties
- add wrap for the container
- override grow, shrink and basis for the items
Video 15: Mobile Content Reordering
- Container doesn't have to have display: flex from the beginning!
- Start a smaller media section @media all and (max-width: )
- display: flex for smaller media
- Change from (implicit) flex-direction: row to column
- Add order for items
- Use class change to hide menu (jQuery or others)
Video 16: Nesting Flexbox for Horizontal and Vertical Centering
- Elements can be flex items AND flex containers simultaneously