Я пытаюсь центрировать div по вертикали, используя высоту линии, без указания заданного значения пикселя для высоты линии. Мне нужно, чтобы линия-высота расширялась до размера его div. Использование «100vh» работает, но единицы видового экрана широко не поддерживаются достаточно широко. Установка высоты линии до 100% не работает. Вот мой HTML:Вертикальное выравнивание divs с высотой строки и неопределенной высотой
<div class="background">
<div class="lightboxbg">
<div class="wrapper">
<div class="centerme"></div>
</div>
</div>
</div>
И мой CSS:
html, body {
width: 100%;
height: 100%;
padding: 0px;
margin: 0px;
}
.background {
width: 90%;
height: 100%;
background-color: AntiqueWhite;
}
.lightboxbg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: black;
vertical-align: middle;
text-align: center;
}
.wrapper {
vertical-align: middle;
line-height: 100%;
height: 100%;
width: 100%
}
.centerme {
vertical-align: middle;
display: inline-block;
width: 100px;
height: 100px;
background-color: blue;
}
And here's a jsfiddle. Синий ящик будет центрированным, если я мог бы получить высоту строки обертки, чтобы расширить до высоты обертки, но дон Не знаю, как это сделать. Спасибо за прочтение.
РЕДАКТИРОВАТЬ: Ответ Натана Ли для решения с ячейками таблицы, Fredric Fohlin для довольно дикого «абсолютного позиционирования» и MM Tac для решения, использующего абсолютное позиционирование.
Это довольно здорово, я пока не работал над своей текущей скрипкой, но я все еще играю. – Ber
Хорошо, я прочитал ваши другие комментарии, и я думаю, что мне нужно уточнить, что элементу «center me» требуется установленная высота. Если элемент не имеет высоты, он получает ту же высоту, что и родитель. –