Wenn Sie versuchen, Inhalt in einem Container zu zentrieren CSS-Tricks hat eine große Anleitung. Wenn Sie jedoch versuchen, einen Text vertikal zu zentrieren, der nur geringfügig kleiner als sein Container ist, ist eine andere Art der vertikalen Zentrierung von Text möglicherweise vorzuziehen. Statt die gesamte Höhe der Schriftart zu verwenden, würde ich eher auf der x-Höhe der Schriftart (im Grunde der Höhe eines Klein x) Zentrum basierendVertikale Ausrichtung basierend auf x-Höhe
Und dieses Beispiel sehen, wo rot basiert auf der gesamte Höhe und grün ist auf der x-Höhe auf Basis
die einzige Option, die ich mit oben kommen könnte, ist ein Pseudo-Element auf den Text mit der gleichen Höhe wie der Behälter hinzuzufügen und vertikal zu verwenden -Ausrichtung: Mitte dazu.
.pseudo {
white-space: nowrap;
}
.pseudo:before {
content: '';
display: inline-block;
vertical-align: middle;
height: 100px;
width: 0;
}
Dies funktioniert, aber leider nur für eine einzige Zeile. Ich habe mich gefragt, ob noch jemand versucht hat, dieses Problem zu lösen, und ob es vielleicht Best Practices gibt, denen man folgen sollte? Ich bin besonders daran interessiert, möglichst wenige "magische" Zahlen zu verwenden und ob es eine gute Lösung für die Multiline-Variante gibt.
Siehe Codepen für ein Beispiel, warum ich es basierend auf der x-Höhe und meine Lösung zentrieren möchte.
jsfiddle Demo - http://jsfiddle.net/u64kwdod/ – Anonymous
Leider, das nicht lösen es. Ich habe ein Bild hinzugefügt, das zeigt, was ich vorhabe. Im grünen Beispiel sehen Sie, dass der Abstand von der Spitze des x-Zeichens zu seinem Container der gleiche ist wie der Abstand von der Unterseite des x-Zeichens zu seinem Container. Im roten Beispiel, das nicht hält (hier hält es für den oberen und unteren Rand der roten Hintergrundfarbe zu seinem Behälter) – ckuijjer
würde ich Anpassungen zu 'line-height' verwenden. Z.B. siehe http://jsfiddle.net/9gdttoyb/ –