Grid Layout
  CSS has always been used to lay out our web pages, but it’s never done a very good job of it. First, we used tables, then floats, positioning and inline-block, but all of these methods were essentially hacks and left out a lot of important functionality (vertical centering, for instance). Flexbox helped out, but it’s intended for simpler one-dimensional layouts, not complex two-dimensional ones (Flexbox and Grid actually work very well together
  
    Flexbox 
    For Flexibility (Read More >>>)
      - Vertically centering a block of content inside its parent.
 
      - Making all the children of a container take up an equal amount of the available width/height, regardless of how much width/height is available.
 
      - Making all columns in a multiple-column layout adopt the same height even if they contain a different amount of content.
 
    
  
  
    Grid 
    For Flexibility (Read More >>>)
      - Vertically centering a block of content inside its parent for 2D-grid.
 
    
  
  
    Floats 
    For Flexibility (Read More >>>)
      - Vertically centering a block of content inside its parent.
 
      - Making all the children of a container take up an equal amount of the available width/height, regardless of how much width/height is available.
 
      - Making all columns in a multiple-column layout adopt the same height even if they contain a different amount of content.