CSS: Wie kann man ein "Label" und "Input" innerhalb eines "div" vertikal ausrichten?
Betrachten die folgenden code:
HTML:
<div>
<label for='name'>Name:</label>
<input type='text' id='name' />
</div>
CSS:
div {
height: 50px;
border: 1px solid blue;
}
Was wäre die einfachste Methode für die label
und die input
in der Mitte des div
(vertikal) ?
Kommentar zu dem Problem
Meines Wissens nach, die Quintessenz ist, "das kannst du nicht", und der faulste Weg, um es mit einem einfachen
<table>
apply valign='middle'
in Ihrer <td>
en. InformationsquelleAutor der Frage Misha Moroshko | 2010-12-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Vorteile dieser Methode ist, dass Sie können ändern, die Höhe der
div
ändern Sie die Höhe des Textfeld, und ändern Sie die schriftart, Größe und alles wird immer in der Mitte zu bleiben.http://jsfiddle.net/53ALd/6/
InformationsquelleAutor der Antwort Marc-François
Dies funktioniert cross-browser bietet mehr Zugänglichkeit und kommt mit weniger markup.
Graben die div. Wickeln Sie das Etikett
InformationsquelleAutor der Antwort albert
Ich bin mir bewusst, diese Frage wurde vor über zwei Jahren, aber für alle jüngeren Zuschauer, hier ist eine alternative Lösung, die hat ein paar Vorteile gegenüber Marc-François-Lösung:
Wir uns hier einfach nur eine
line-height
gleich der Höhe der div. Der Vorteil, Sie können nun ändern Sie die display-Eigenschaft des div-wie Sie sehen, passen, zuinline-block
zum Beispiel, und es ist der Inhalt wird bleiben vertikal zentriert. Die akzeptierte Lösung erforderlich ist, behandeln Sie das div als table-cell. Dies sollte perfekt funktionieren, cross-browser.Die nur anderen Vorteil, es ist einfach eine weitere CSS-Regel statt zwei 🙂
Prost!
InformationsquelleAutor der Antwort MusikAnimal
Verwenden
padding
auf diediv
(oben und unten) undvertical-align:middle
auf dielabel
undinput
.Beispiel bei http://jsfiddle.net/VLFeV/1/
InformationsquelleAutor der Antwort Gabriele Petrioli
Wickeln Sie das label und input in einem anderen div mit definierter Höhe. Dies funktioniert nicht im IE-Versionen kleiner 8.
InformationsquelleAutor der Antwort Trevor
Können Sie
display: table-cell
- Eigenschaft wie im folgenden code:InformationsquelleAutor der Antwort abahet