Я центрирую DIV внутри другого DIV, используя flexbox. Подумайте о диалоговом окне, которое появляется в центре экрана при необходимости.
Это работает нормально, однако выглядело бы намного лучше, если бы пространство над и под диалоговым окном было не совсем одинаковым, с 40% оставшегося пространства над и 60% под диалоговым окном. Это становится сложно, потому что высота диалога зависит от количества текста внутри.
Например, если высота браузера составляет 1000 пикселей, а высота диалогового окна - 400 пикселей, я хочу, чтобы оставшееся вертикальное пространство (600 пикселей) было на 240 пикселей выше и на 360 пикселей ниже диалогового окна. Я мог бы сделать это с помощью Javascript, но мне любопытно, есть ли какой-нибудь умный способ с CSS. Я попытался добавить нижнее поле для #dialogBox DIV, но это не работает, когда высота диалога приближается к высоте браузера.
#dialogBoxPanel
{
position:absolute;
display:flex;
align-items:center;
justify-content:center;
left:0px;
top:0px;
width:100%;
height:100%;
}
#dialogBox
{
width:350px;
}
<div id="dialogBoxPanel">
<div id="dialogBox">Text</div>
</div>