Estou centralizando um DIV dentro de outro DIV usando um flexbox. Pense em uma janela de diálogo que aparece no centro da tela quando necessário.
Funciona bem, no entanto, ficaria muito melhor se o espaço acima e abaixo da caixa de diálogo não fosse exatamente igual, tendo 40% do espaço restante acima e 60% abaixo da caixa de diálogo. Fica complicado porque a altura da caixa de diálogo varia com a quantidade de texto existente.
Por exemplo, se a altura do navegador é de 1000 px e a da janela de diálogo é de 400 px, quero que o espaço vertical restante (600 px) seja 240 px acima e 360 px abaixo da caixa de diálogo. Eu poderia fazê-lo com Javascript, mas estou curioso para saber se existe alguma maneira inteligente com CSS. Tentei adicionar uma margem inferior ao #dialogBox DIV, mas isso não funciona quando a altura da caixa de diálogo está chegando à altura do navegador.
#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>