Wenn Sie CSS zur vertikalen Zentrierung verwenden, können Sie die äußeren Container wie eine Tabelle und den Inhalt wie eine Tabellenzelle wirken lassen. In diesem Format bleiben Ihre Objekte zentriert :)
Ich habe mehrere Objekte in JSFiddle verschachtelt, um ein Beispiel zu geben, aber die Kernidee ist wie folgt:
HTML
<div class="circle">
<div class="content">
Some text
</div>
</div>
CSS
.circle {
/* Act as a table so we can center vertically its child */
display: table;
/* Set dimensions */
height: 200px;
width: 200px;
/* Horizontal center text */
text-align: center;
/* Create a red circle */
border-radius: 100%;
background: red;
}
.content {
/* Act as a table cell */
display: table-cell;
/* And now we can vertically center! */
vertical-align: middle;
/* Some basic markup */
font-size: 30px;
font-weight: bold;
color: white;
}
Das Beispiel für mehrere Objekte:
HTML
<div class="container">
<div class="content">
<div class="centerhoriz">
<div class="circle">
<div class="content">
Some text
</div><!-- content -->
</div><!-- circle -->
<div class="square">
<div class="content">
<div id="smallcircle"></div>
</div><!-- content -->
</div><!-- square -->
</div><!-- center-horiz -->
</div><!-- content -->
</div><!-- container -->
CSS
.container {
display: table;
height: 500px;
width: 300px;
text-align: center;
background: lightblue;
}
.centerhoriz {
display: inline-block;
}
.circle {
display: table;
height: 200px;
width: 200px;
text-align: center;
background: red;
border-radius: 100%;
margin: 10px;
}
.square {
display: table;
height: 200px;
width: 200px;
text-align: center;
background: blue;
margin: 10px;
}
.content {
display: table-cell;
vertical-align: middle;
font-size: 30px;
font-weight: bold;
color: white;
}
#smallcircle {
display: inline-block;
height: 50px;
width: 50px;
background: green;
border-radius: 100%;
}
Ergebnis
https://jsfiddle.net/martjemeyer/ybs032uc/1/
23 Stimmen
Ich habe eine Liste mit allen Möglichkeiten der vertikalen Ausrichtung erstellt, die ich hier hinterlasse: jsfiddle.net/techsin/FAwku/1
3 Stimmen
Hier sind zwei einfache Methoden, um ein Element innerhalb eines div zu zentrieren, vertikal, horizontal oder beides (reines CSS): stackoverflow.com/a/31977476/3597276
1 Stimmen
Margin-top: auto und margin-bottom: auto (funktioniert in vielen Fällen).