Diese beiden Lösungen erfordern nur zwei verschachtelte Elemente.
Erstens - Relative und absolute Positionierung, wenn der Inhalt statisch ist (manuelle Mitte).
.black {
position:relative;
min-height:500px;
background:rgba(0,0,0,.5);
}
.message {
position:absolute;
margin: 0 auto;
width: 180px;
top: 45%; bottom:45%; left: 0%; right: 0%;
}
https://jsfiddle.net/GlupiJas/5mv3j171/
oder für flüssiges Design - für das genaue Content Center verwenden Sie stattdessen das folgende Beispiel:
.message {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
https://jsfiddle.net/GlupiJas/w3jnjuv0/
Sie müssen die Mindesthöhe festlegen, falls der Inhalt 50% der Fensterhöhe überschreitet. Sie können diese Höhe auch mit einer Medienabfrage für Mobil- und Tablet-Geräte bearbeiten. Aber nur, wenn Sie mit Responsive Design spielen.
Ich denke, Sie könnten noch weiter gehen und ein einfaches JavaScript / JQuery-Skript verwenden, um die Mindesthöhe oder die feste Höhe zu ändern, wenn dies aus irgendeinem Grund erforderlich ist.
Zweitens : Wenn der Inhalt flüssig ist, können Sie auch CSS-Eigenschaften für Tabellen und Tabellenzellen mit vertikaler Ausrichtung und zentrierter Textausrichtung verwenden:
/*in a wrapper*/
display:table;
und
/*in the element inside the wrapper*/
display:table-cell;
vertical-align: middle;
text-align: center;
Funktioniert und skaliert perfekt und wird häufig als reaktionsschnelle Webdesign-Lösung mit Rasterlayouts und Medienabfragen verwendet, die die Breite des Objekts beeinflussen.
.black {
display:table;
height:500px;
width:100%;
background:rgba(0,0,0,.5);
}
.message {
display:table-cell;
vertical-align: middle;
text-align: center;
}
https://jsfiddle.net/GlupiJas/4daf2v36/
Ich bevorzuge eine Tabellenlösung für die exakte Inhaltszentrierung, aber in einigen Fällen ist die relative absolute Positionierung besser geeignet, insbesondere wenn wir den exakten Anteil der Inhaltsausrichtung nicht beibehalten möchten.