Using flexbox to vertically and horizontally center content is usually the
      preferred method. All it takes is three lines of code in the container
      element to set display: flex and then center the child
      element vertically and horizontally using
      align-items: center and
      justify-content: center respectively. You can view the
      Flexbox centering snippet for the
      code and examples.
    
      Using the grid module is very similar to flexbox and also a common
      technique, especially if you are already using grid in your layout. The
      only difference from the previous technique is the
      display which is set to grid instead. You can
      view the Grid centering snippet for
      the code and examples.
    
      Transform centering uses, as the name implies, CSS transforms to center an
      element. It depends on the container element having a
      position: relative, allowing the child element to utilize
      position: absolute to position itself. Then
      left: 50% and top: 50% are used to offset the
      child element and transform: translate(-50%, -50%) to negate
      its position. You can view the
      Transform centering snippet for
      the code and examples.
    
      Last but not least, table centering is an older technique which you might
      favor when working with older browsers. It depends on the use of
      display: table in the container element. This allows the
      child element to use display: table-cell in combination with
      text-align: center and vertical-align: middle to
      center itself horizontally and vertically. You can view the
      Display table centering snippet
      for the code and examples.