Задать вопрос
floydman-89
@floydman-89
В постоянном изучении...

Вертикальное выравнивание: display: flex или display: table-cell?

Народ всем привет.

Собственно вопрос такой: какой из способов вертикального выравнивания вы используете:

height: 100vh;
display: table-cell;
vertical-align: middle;

или через flex-модель:

width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;


Какой из этих способов в данный момент является более предпочтительным и является "правилом хорошего CSS-тона" ?

Теоретически можно использовать оба способа для поддержки совместимости с "не-CSS3-браузерами", применяя modernizr.
  • Вопрос задан
  • 6538 просмотров
Подписаться 5 Оценить Комментировать
Решения вопроса 1
r45her
@r45her
HTML-верстальщик / Frontend разработчик
Не знаю как принято, но лично я чаще использую такой способ:

position: absolute;
top: 50%;
transform: translateY(-50%);

Разумеется, подходит не всегда.
Если поддержка старых браузеров не требуется, то почему бы не использовать флексы?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
iiiBird
@iiiBird Куратор тега CSS
Пока ты спишь - твой конкурент совершенствуется
еще есть способ создать before который будет задавать центрирование:
.wrapper:before {
	content: "";
	display: inline-block;
	width: 1px;
	height: 100vh;
	margin-left: -1px;
	vertical-align: middle;
}

и остальные элементы в строке можно выравнивать через display: inline-block; vertical-align: middle;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы