Saya memusatkan DIV di dalam DIV lain menggunakan flexbox. Pikirkan jendela dialog yang muncul di tengah layar bila diperlukan.
Ini berfungsi dengan baik, namun akan terlihat jauh lebih baik jika ruang di atas dan di bawah dialog tidak persis sama, memiliki 40% dari ruang yang tersisa berada di atas dan 60% di bawah dialog. Itu menjadi rumit karena ketinggian dialog bervariasi dengan jumlah teks di dalamnya.
Jadi misalnya, jika tinggi browser 1000 px, dan tinggi jendela dialog adalah 400 px, saya ingin ruang vertikal yang tersisa (600 px) menjadi 240 px di atas dan 360 px di bawah dialog. Saya bisa melakukannya dengan Javascript, tapi saya ingin tahu apakah ada cara pintar dengan CSS. Saya mencoba menambahkan margin bawah ke #dialogBox DIV, tetapi itu tidak berfungsi ketika tinggi dialog semakin mendekati tinggi browser.
#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>