Ich zentriere einen DIV mithilfe einer Flexbox in einem anderen DIV. Stellen Sie sich ein Dialogfenster vor, das bei Bedarf in der Mitte des Bildschirms angezeigt wird.
Es funktioniert gut, aber es würde viel besser aussehen, wenn der Platz über und unter dem Dialogfeld nicht genau gleich wäre, da 40% des verbleibenden Platzes über und 60% unter dem Dialogfeld liegen. Es wird schwierig, da die Höhe des Dialogfelds von der Textmenge abhängt.
Wenn die Browserhöhe beispielsweise 1000 Pixel und die Höhe des Dialogfensters 400 Pixel beträgt, soll der verbleibende vertikale Raum (600 Pixel) 240 Pixel über und 360 Pixel unter dem Dialogfeld liegen. Ich könnte es mit Javascript machen, aber ich bin gespannt, ob es mit CSS einen cleveren Weg gibt. Ich habe versucht, der #dialogBox DIV einen unteren Rand hinzuzufügen, aber das funktioniert nicht, wenn sich die Dialoghöhe der Browserhöhe nähert.
#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>