Estoy centrando un DIV dentro de otro DIV usando un flexbox. Piense en una ventana de diálogo que aparece en el centro de la pantalla cuando sea necesario.
Funciona bien, sin embargo, se vería mucho mejor si el espacio arriba y abajo del diálogo no fuera exactamente igual, teniendo el 40% del espacio restante arriba y el 60% debajo del diálogo. Se vuelve complicado porque la altura del diálogo varía con la cantidad de texto dentro.
Entonces, por ejemplo, si la altura del navegador es de 1000 px, y la altura de la ventana de diálogo es de 400 px, quiero que el espacio vertical restante (600 px) sea de 240 px arriba y 360 px debajo del cuadro de diálogo. Podría hacerlo con Javascript, pero tengo curiosidad por saber si hay alguna manera inteligente con CSS. Intenté agregar un margen inferior al #dialogBox DIV, pero eso no funciona cuando la altura del diálogo se acerca a la altura del 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>