Почему не работает vertical-align: center?

Свойство vertical-align: center в CSS не существует. Чтобы вертикально выравнять контент внутри элемента, можно воспользоваться различными подходами в зависимости от конкретной ситуации.

  1. Выравнивание по центру текста внутри блока: Для этого используйте свойство text-align: center; для блока, в котором находится текст.
.element {
    text-align: center;
}
  1. Выравнивание по вертикали блока внутри другого блока: Для этого можно воспользоваться флексбоксами. Установите для контейнера родительского блока следующие стили:
.parent {
    display: flex;
    align-items: center; /* Выравнивание по вертикали */
}
  1. Выравнивание по вертикали элемента внутри родительского блока с известной высотой: Можно воспользоваться относительным позиционированием и трансформацией:
.parent {
    position: relative;
}

.child {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
  1. Выравнивание по вертикали элемента внутри родительского блока с неизвестной высотой: Для таких случаев можно воспользоваться псевдоэлементом и флексбоксами:
.parent {
    display: flex;
}

.child {
    margin: auto;
}

Выбор метода выравнивания будет зависеть от конкретной структуры HTML и требований дизайна. Не забудьте, что некоторые методы могут быть несовместимы с определенными версиями браузеров, поэтому стоит проверить совместимость в случае использования более старых версий.