Central verticalmente siempre fue un problema en CSS... hasta que llegó Flexbox.
Te voy a dar una solución basada en flexbox, pero te recomiendo que leas a fondo sobre esa utilidad de CSS para que entiendas bien cómo realizar las alineaciones verticales u horizontales y puedas sacarle el mejor partido.
a {
display: flex;
align-items: center;
justify-content: center;
width: 5em;
height: 3em;
background-color: yellow;
border: 1px solid;
}
- Lo más importante para comenzar a usar Flexbox lo tienes en el
display: flex
-
align-items: center;
te sirve para alinear verticalmente en este caso yjustify-content: center;
te está realizando la alineación horizontal - Luego
text-align
ya no te hace falta, porque la alineación horizontal te la dajustify-content
en este caso
Puedes aprender sobre Flexbox en el manual de flexbox. Además tienes un artículo dedicado a la alineación vertical con CSS.