Ich habe ein Formular mit Optionsfeldern, die sich in derselben Zeile wie ihre Beschriftungen befinden. Die Optionsfelder sind jedoch nicht vertikal mit ihren Beschriftungen ausgerichtet, wie im folgenden Screenshot gezeigt.
Wie kann ich die Optionsfelder vertikal an ihren Beschriftungen ausrichten?
Bearbeiten:
Hier ist der HTML-Code:
<input checked="checked" type="radio" name="user_level" id="rd1" value="1"/>
<label for="rd1">radio 1</label><br/>
<input type="radio" name="user_level" id="rd2" value="2"/>
<label for="rd2">radio 2</label><br/>
<input type="radio" name="user_level" id="rd3" value="3"/>
<label for="rd3">radio 3</label><br/>
Und der CSS-Code:
label{
padding:5px;
color:#222;
font-family:corbel,sans-serif;
font-size: 14px;
margin: 10px;
}
Antworten:
Versuche dies:
quelle
height= 100%;
da mein übergeordnetes Element die Höhe nicht explizit festlegte.Setzen Sie Klasse für alle Radio. Dies funktioniert für alle Optionsfelder auf der HTML-Seite.
Geige
quelle
Ich weiß, dass ich die Antwort von Menuka Devinda ausgewählt hatte, aber als ich mir die Kommentare darunter ansah, stimmte ich zu und versuchte, eine bessere Lösung zu finden. Ich habe es geschafft und meiner Meinung nach ist es eine viel elegantere Lösung:
Vielen Dank an alle, die eine Antwort angeboten haben, Ihre Antwort blieb nicht unbemerkt. Wenn Sie noch weitere Ideen haben, können Sie diese Frage gerne selbst beantworten.
quelle
Versuchen Sie,
vertical-align:top
in die CSS hinzuzufügenTest: http://jsfiddle.net/muthkum/heAWP/
quelle
font-size
versuchen Sie es mitdisplay:flex
. Hier ist eine Demo, jsfiddle.net/et8z47q5Könnte auch ein bisschen Flexibilität zu den Antworten hinzufügen.
quelle
Sie können dies tun:
DEMOquelle
So etwas sollte funktionieren
CSS:
quelle
Ich richte nur den vertikalen Mittelpunkt der Felder an der Grundlinie des übergeordneten Felds plus der halben x-Höhe (en.wikipedia.org/wiki/X-height) des übergeordneten Felds aus.
quelle
Viele dieser Antworten sagen zu verwenden
vertical-align: middle;
, was die Ausrichtung nahe bringt, aber für mich ist es immer noch um ein paar Pixel versetzt. Die Methode, mit der ich eine echte 1: 1-Ausrichtung zwischen den Etiketten und den Funkeingängen erhalten habe, ist folgendevertical-align: top;
:quelle
Ich mag es, die Eingaben in die Beschriftungen einzufügen (zusätzlicher Bonus: Jetzt brauchen Sie das
for
Attribut nicht mehr auf der Beschriftung) undvertical-align: middle
die Eingaben zu setzen.(Das
-2px margin-top
ist Geschmackssache.)Eine andere Option, die ich wirklich mag, ist die Verwendung einer Tabelle. (Halten Sie Ihre Pitchgabeln! Es ist wirklich schön!) Es bedeutet, dass Sie das
for
Attribut allen Ihren Beschriftungen undid
s Ihren Eingaben hinzufügen müssen . Ich habe diese Option für Beschriftungen mit langem Textinhalt über mehrere Zeilen empfohlen.quelle
Ich stimme zwar zu, dass Tabellen nicht für Design-Layouts verwendet werden sollten, obwohl sie allgemein angenommen werden, dass sie die Validierung bestehen. dh das Tabellen-Tag ist nicht veraltet. Die beste Möglichkeit zum Ausrichten von Optionsfeldern ist die vertikale Ausrichtung des mittleren CSS mit an den Eingabeelementen angepassten Rändern.
quelle
Das Hinzufügen
display:inline-block
zu den Etiketten und das Geben von Etikettenpadding-top
würde dies beheben, denke ich. Auch nur das Setzenline-height
auf den Etiketten würde auch.quelle
Es gibt mehrere Möglichkeiten, eine, die ich bevorzugen würde, ist die Verwendung einer Tabelle in HTML. Sie können eine Tabelle mit zwei Spalten und drei Zeilen hinzufügen und die Optionsfelder und das Etikett platzieren.
quelle
.tablecell{dispay:table-cell;} ... <div class="tablecell">
scheint eher eine wackelige Problemumgehung für Leute zu sein, die nicht zugeben wollen, dass sie Tabellen verwenden ...