Ich zeige die Anzahl der Felder in einer Reihe mit fester Höhe und Breite an, die aus <li> -Tags generiert wurden. Jetzt muss ich den Text in der vertikalen Mitte ausrichten. Die vertikale Ausrichtung des CSS hat keine Auswirkungen, vielleicht fehlt mir etwas ???
Ich suche keine Tricks mit (Rand, Abstand, Zeilenhöhe), diese funktionieren nicht, da einige Texte lang sind und in zwei Zeilen zerfallen.
Bitte finden Sie den aktuellen Code:
CSS-Code
ul.catBlock{
width:960px;
height: 270px;
border:1px solid #ccc;
}
ul.catBlock li{
list-style: none;
float:left;
display:block;
text-align: center;
width:160px;
height: 100px;
}
ul.catBlock li a{
display: block;
padding: 30px 10px 5px 10px;
height:60px;
}
HTML Quelltext
<ul class="catBlock">
<li><a href="#">IP Phone</a></li>
<li><a href="#">Dual SIM Switch Server</a></li>
<li><a href="#">IP PBX</a></li>
</ul>
html
css
vertical-alignment
AK4668
quelle
quelle
Antworten:
Definieren Sie das übergeordnete
display: table
Element mit und das Element selbst mitvertical-align: middle
unddisplay: table-cell
.quelle
<li>
einer einzigen Reihe?line-height
So richten Sie Text vertikal aus. Es ist ziemlich normal und ich halte es nicht für einen "Hack". Fügenline-height: 100px
Sie einfach zu Ihrem hinzuul.catBlock li
und es wird in Ordnung sein.In diesem Fall müssen Sie es möglicherweise hinzufügen
ul.catBlock li a
stattdessen da sich der gesamte Text innerhalb vonli
auch innerhalb von befindeta
. Ich habe einige seltsame Dinge gesehen, wenn Sie dies tun, also versuchen Sie beide und sehen Sie, welche funktioniert.quelle
vertical-align: middle
wenn Sie habendisplay: table-cell
. Ich habe es aber nie benutzt. WerfenSo viele Jahre zu spät diese Antwort auch sein mag, jeder, der darauf stößt, möchte es vielleicht einfach versuchen
Die Browserunterstützung für Flexbox ist weitaus besser als zu dem Zeitpunkt, als @scottjoudry seine Antwort oben veröffentlicht hat. Wenn Sie jedoch versuchen, viel ältere Browser zu unterstützen, sollten Sie dennoch Präfixe oder andere Optionen in Betracht ziehen. caniuse: flex
quelle
list-style-image
in Chrome - das Bild verschwindetÜberraschenderweise (oder auch nicht)
vertical-align
funktioniert das Tool für diesen Job am besten. Das Beste ist, dass kein Javascript erforderlich ist.Im folgenden Beispiel positioniere ich die
outer
Klasse in der Mitte des Körpers und dieinner
Klasse in der Mitte derouter
Klasse.Vorschau: http://jsfiddle.net/tLkSV/513/
HTML:
CSS:
Bei der vertikalen Ausrichtung werden die Zentren von Elementen ausgerichtet, die nebeneinander liegen. Das Anwenden der vertikalen Ausrichtung auf ein einzelnes Element bewirkt absolut nichts. Wenn Sie ein zweites Element hinzufügen, das keine Breite hat, aber die Höhe des Containers ist, wird Ihr einzelnes Element mit diesem Element ohne Breite vertikal zentriert und somit vertikal zentriert. Die einzigen Anforderungen sind, dass Sie beide Elemente auf Inline (oder Inline-Block) setzen und ihr vertikales Ausrichtungsattribut auf setzen
vertical-align: middle
.Hinweis: Möglicherweise stellen Sie in meinem Code unten fest, dass sich mein
<span>
Tag und mein Tag<div>
berühren. Da es sich bei beiden um Inline-Elemente handelt, wird durch ein Leerzeichen tatsächlich ein Leerzeichen zwischen dem Element ohne Breite und Ihrem div hinzugefügt. Lassen Sie es daher unbedingt weg.quelle
In Zukunft wird dieses Problem durch Flexbox gelöst. Derzeit ist die Browserunterstützung düster, wird jedoch in der einen oder anderen Form in allen aktuellen Browsern unterstützt.
Browserunterstützung: http://caniuse.com/flexbox
Hintergrundinformationen zu Flexbox: http://css-tricks.com/snippets/css/a-guide-to-flexbox/
quelle
Hier gibt es keine perfekten Antworten, außer Asafs Antwort, die weder Code noch ein Beispiel enthält. Deshalb möchte ich meine ...
Damit die
vertical-align: middle;
Arbeit funktioniert, müssen Sie siedisplay: table;
für Ihrul
Element unddisplay: table-cell;
fürli
Elemente verwenden und dannvertical-align: middle;
fürli
Elemente.Sie brauchen keine explizite bereitzustellen
margins
,paddings
Ihren Text vertikal Mitte zu machen.Demo
quelle
Wie hier erklärt: https://css-tricks.com/centering-in-the-unknown/ .
Bildschirmfoto:
quelle
Probieren Sie diese Lösung aus
Funktioniert in den meisten Fällen am besten
Sie können verwenden , haben div statt li dafür
quelle
Einfache Lösung für die vertikale Ausrichtung in der Mitte ... für mich funktioniert es wie ein Zauber
quelle