Некоторые методы вертикального выравнивания в CSS и их особенности:
- Выравнивание с помощью line-height. 3 Подходит, если внутренний блок занимает не более одной строки текста. 3 Преимущества: не обрезает текст, если он не влез. 4 Недостатки: работает только с текстом, не с блочными элементами. 4 Если текста больше одной строки, то выглядит плохо. 4
- Выравнивание с помощью отрицательного margin-top. 3 Применяется, когда высота внешнего блока неизвестна, но известна высота внутреннего. 3 Преимущества: часто используемый способ. 3 Недостатки: ограниченная поддержка свойства transform старыми версиями браузера IE. 3
- Выравнивание с помощью псевдоэлемента. 3 Универсальный способ, который может применяться, когда неизвестны высоты обоих блоков. 3 Преимущества: внутренний блок выравнивается по вертикали относительно добавленного, а значит, и внешнего блока. 3 Недостатки: чтобы не нарушать семантику, строчный блок рекомендуется добавить с помощью псевдоэлемента before или after. 3
- Использование flexbox. 2 Если необходимо вертикально выровнять элементы, предпочтительнее использовать flexbox вместо float. 2 Преимущества: получение идеально центрированного блока. 2 Недостатки: flexbox поддерживается только современными браузерами. 3
Выбор метода вертикального выравнивания зависит от постановки задачи. 3