Центрировать элементы по горизонтали в CSS невероятно просто: если это строковый элемент, то мы применяем text-align: center к его предку, а если это блочный элемент, то мы применяем margin: auto к нему самому. Но одной мысли о том, чтобы центрировать элемент по вертикали, достаточно, чтобы по спине пробежали холодные мурашки...