Um ein Element in einem anderen Element zu horizontal zu zentrieren kann man, sofern man die Breite angeben kann, margin: 0 auto; oder margin: auto; verwenden.
Um das Element horizontal zu zentrieren wird schon schwieriger.
Noch schwieriger wird es wenn die Breite und oder die Höhe dynamisch ist.
Mit einem Ghost:before Element fuktioniert das perfekt:
/* This parent can be any width and height */
.parent {
text-align: center;
/* May want to do this if there is risk the container may be narrower than the element inside */
white-space: nowrap;
}
/* The ghost, 4 perfect centering */
.parent:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
margin-right: -0.25em; /* Adjusts for spacing */
}
/* The element to be centered, can also be of any width and height */
.centered {
display: inline-block;
vertical-align: middle;
/* width: 300px; */
}