Centruję DIV wewnątrz innego DIV za pomocą Flexboksa. Pomyśl o oknie dialogowym, które pojawia się na środku ekranu w razie potrzeby.
Działa dobrze, jednak wyglądałoby to znacznie lepiej, gdyby przestrzeń powyżej i poniżej okna dialogowego nie była dokładnie równa, mając 40% pozostałej przestrzeni powyżej i 60% poniżej okna dialogowego. Jest to trudne, ponieważ wysokość okna dialogowego zmienia się w zależności od ilości tekstu w środku.
Na przykład, jeśli wysokość przeglądarki wynosi 1000 pikseli, a wysokość okna dialogowego wynosi 400 pikseli, chcę, aby pozostała przestrzeń pionowa (600 pikseli) znajdowała się 240 pikseli powyżej i 360 pikseli poniżej okna dialogowego. Mógłbym to zrobić za pomocą Javascript, ale jestem ciekawy, czy istnieje jakiś sprytny sposób z CSS. Próbowałem dodać dolny margines do #dialogBox DIV, ale to nie działa, gdy wysokość okna dialogowego zbliża się do wysokości przeglądarki.
#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>