Ich musste ein Inline-Block-Element vertikal ausrichten und stieß im Internet auf eine Line-Height-Eigenschaft.Warum müssen mehr als 2 Elemente mithilfe der Zeilenhöheneigenschaft vertikal ausgerichtet werden?
Der Code wie folgt:
HTML
div#line-parent {
display: block;
width: 100%;
height: 100px;
line-height: 100px;
border: 1px dotted #ccc;
background-color: antiquewhite;
text-align: center;
}
div#line-parent:before {
content: "";
display: inline-block;
vertical-align: middle;
}
div.line-child {
display: inline-block;
width: 20%;
line-height: normal;
background-color: brown;
vertical-align: middle;
}
<div id="line-parent">
<div class="line-child">
vertical align using line height
</div>
</div>
Wenn jedoch die parent (#line-parent
) nur das Kind (.line-child
) enthält, dann wird das Kind nicht vertikal ausgerichtet in der Mitte.
Um das Kind im Elternteil vertikal auszurichten, habe ich entweder spudo Klasse :before
im Elternteil hinzugefügt (wie ich oben getan habe) oder einen Text im Elternteil hinzugefügt.
Ich möchte wissen, warum wir mehr als Elemente hinzufügen müssen, um diese Elemente vertikal ausgerichtet zu bekommen? Wie funktioniert das?
Haben Sie Ihren Standpunkt nicht verstanden. Nun, wenn Sie entfernen, bevor noch Kind Div wird in der Mitte sein. –
Es wird zentriert, sobald Sie das Element: before entfernen. – Paran0a
Ich fand das Problem ist, dass ich am Anfang der HTML-Datei nicht hinzugefügt habe. Und der Code funktionierte nicht, wenn ich den DOCTYPE als Seit CSS 1.0 wird keine line-height Eigenschaft unterstützt. – ipkiss