Ich habe ein sehr einfaches und bekanntes Formszenario, in dem ich Beschriftungen neben Eingaben korrekt ausrichten muss. Ich weiß jedoch nicht, wie ich es machen soll.
Mein Ziel wäre es, dass Beschriftungen neben den Eingaben auf der rechten Seite ausgerichtet werden. Hier ist ein Bildbeispiel des gewünschten Ergebnisses.
Ich habe eine Geige für Ihre Bequemlichkeit gemacht und um zu klären, was ich jetzt habe - http://jsfiddle.net/WX58z/
Snippet:
<div class="block">
<label>Simple label</label>
<input type="text" />
</div>
<div class="block">
<label>Label with more text</label>
<input type="text" />
</div>
<div class="block">
<label>Short</label>
<input type="text" />
</div>
Während die Lösungen hier praktikabel sind, hat eine neuere Technologie zu einer meiner Meinung nach besseren Lösung geführt. Mit CSS Grid Layout können wir eine elegantere Lösung strukturieren.
Das folgende CSS bietet eine zweispaltige "Einstellungs" -Struktur, bei der erwartet wird, dass die erste Spalte eine rechtsbündige Beschriftung ist, gefolgt von einigen Inhalten in der zweiten Spalte. Kompliziertere Inhalte können in der zweiten Spalte dargestellt werden, indem sie in ein <div> eingeschlossen werden.
[Als Randnotiz: Ich verwende CSS, um das ':' hinzuzufügen, das jedem Label folgt, da dies ein Stilelement ist - meine Präferenz.]
quelle
grid-template-columns: max-content 1fr;
, verwendet die zweite Spalte die gesamte verbleibende Breite. Dies ist für mich der heilige Gral solcher Layouts, bei denen keine Spalten- oder Inhaltsbreiten angegeben werden müssen und alles automatisch perfekt in den verfügbaren Platz passt.Wenn Sie eine solche Frage bereits beantwortet haben, können Sie sich die Ergebnisse hier ansehen:
Form erstellen, um Felder und Text nebeneinander zu haben - wie geht das semantisch?
Um die gleichen Regeln auf Ihre Geige anzuwenden, können Sie
display:inline-block
Ihre Beschriftung und Eingabegruppen nebeneinander anzeigen, wie folgt:CSS
Geige aktualisiert
quelle
Ich benutze etwas Ähnliches:
Stil:
quelle
Sie können auch versuchen, Flex-Box zu verwenden
quelle
Ich weiß, dass dies ein alter Thread ist, aber eine einfachere Lösung wäre, eine Eingabe wie folgt in das Label einzubetten:
quelle
Hier ist die allgemeine Beschriftungsbreite für alle Formularbeschriftungen. Nichts feste Breite.
Rufen Sie den setLabelWidth-Rechner mit allen Beschriftungen auf. Diese Funktion lädt alle Beschriftungen auf der Benutzeroberfläche und ermittelt die maximale Beschriftungsbreite. Wenden Sie den Rückgabewert der folgenden Funktion auf alle Beschriftungen an.
quelle
Sie können so etwas tun:
HTML:
CSS:
Hoffe das hilft ! :) :)
quelle