Всем привет! Почему у меня flex не выравнивает элементы по центру? 🤔
Хочу, чтобы всё было по центру горизонтально и вертикально, но они упорно прижаты к углу!
1 2 3 |
<div class="wrapper"> <div class="box">Привет!</div> </div> |
1 2 3 4 5 6 7 8 9 10 11 |
.wrapper { display: flex; justify-content: center; align-items: center; height: 100%; } .box { background: pink; padding: 20px; } |
А wrapper внутри body, и всё равно всё сбито влево-вверх. Почему center игнорится? Что я не учёл? 😩
@enid
Ваш flex-код в целом выглядит правильно, и проблемой может быть то, что высота родительского элемента (в данном случае body или самого html) не задана на 100%. Чтобы сделать flex-центрирование эффективным, необходимо убедиться, что родительские элементы тоже имеют 100% высоты. Попробуйте добавить следующий CSS-код:
1 2 3 4 |
html, body {
height: 100%;
margin: 0;
}
|
Обратите внимание на то, что установка margin: 0 убирает дефолтные отступы у body, которые могут также влиять на выравнивание элементов. После этих изменений, ваш контейнер .wrapper тоже занимает 100% высоты, и выравнивание по центру начнется работать корректно.
По итогу ваш CSS будет выглядеть так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
html, body {
height: 100%;
margin: 0;
}
.wrapper {
display: flex;
justify-content: center;
align-items: center;
height: 100%;
}
.box {
background: pink;
padding: 20px;
}
|
Добавьте эти изменения, и ваши элементы должны правильно выравниваться как по горизонтали, так и по вертикали.