Para centrar elementos es muy importante conocer los modelos de caja en css:
- Los elementos de bloque (display: block) ocupan por defecto todo el espacio disponible horizontalmente aunque su contenido sea pequeño, por eso se situan uno debajo del otro.
- Los elementos de bloque y de linea (display: inline-block) ocupan solo el espacio necesario para mostrar su contenido y por defecto se colocaran en la misma línea siempre que haya espacio.
Un error muy frecuente es intentar centrar un texto dentro de un elemento de bloque (div) con margin:0 auto ya que lo que estamos haciendo realmente aqui es centrar el div que de por si ocupa todo el ancho y no se puede centrar. En este caso centrariamos el texto con text-align: center
Para centrar un texto dentro de un elemento inline-block tendrás que usar text-align: center no en el propio elemento inline-block sino en el elemento contenedor.
Y por último para centrar cajas usamos el tradicional width: ..px margin: 0 auto