Ich bin neu in HTML und versuche zu lernen, wie man Formulare verwendet.
Das größte Problem, das ich bisher habe, ist das Ausrichten der Formulare. Hier ist ein Beispiel meiner aktuellen HTML-Datei:
<form>
First Name:<input type="text" name="first"><br />
Last Name:<input type="text" name="last"><br />
Email:<input type="text" name="email"><br />
</form>
Das Problem dabei ist, dass sich das Feld nach "E-Mail" in Bezug auf den Abstand drastisch von Vor- und Nachnamen unterscheidet. Was ist der "richtige" Weg, um es so zu machen, dass sie im Wesentlichen "aufstellen"?
Ich versuche, gute Form und Syntax zu üben ... viele Leute tun dies möglicherweise mit CSS. Ich bin mir nicht sicher, ich habe bisher nur die Grundlagen von HTML gelernt.
Antworten:
In einem anderen Beispiel wird CSS verwendet. Ich habe das Formular einfach in ein div mit der Containerklasse eingefügt. Und angegeben, dass die darin enthaltenen Eingabeelemente 100% der Containerbreite betragen und keine Elemente auf beiden Seiten enthalten sollen.
quelle
Die akzeptierte Antwort (Festlegen einer expliziten Breite in Pixel) erschwert das Vornehmen von Änderungen und führt zu Unterbrechungen, wenn Ihre Benutzer eine andere Schriftgröße verwenden. Die Verwendung von CSS-Tabellen funktioniert dagegen hervorragend:
Hier ist eine JSFiddle: http://jsfiddle.net/DaS39/1/
Und wenn Sie die Beschriftungen rechtsbündig benötigen, fügen Sie
text-align: right
sie einfach zu den Beschriftungen hinzu: http://jsfiddle.net/DaS39/BEARBEITEN: Noch eine kurze Anmerkung: In CSS-Tabellen können Sie auch mit Spalten spielen: Wenn Sie beispielsweise möchten, dass die Eingabefelder so viel Platz wie möglich beanspruchen, können Sie Folgendes in Ihr Formular einfügen
Sie können hinzufügen möchten ,
white-space: nowrap
um dielabels
in diesem Fall.quelle
Eine einfache Lösung für Sie, wenn Sie mit HTML noch nicht vertraut sind, besteht darin, eine Tabelle zu verwenden, um alles auszurichten.
quelle
Ich finde es viel einfacher, die Anzeige der Beschriftungen in Inline-Block zu ändern und eine Breite festzulegen
quelle
Sie sollten eine Tabelle verwenden. Aus logischen Gründen sind die Daten tabellarisch: Aus diesem Grund möchten Sie, dass sie ausgerichtet werden, da Sie zeigen möchten, dass die Beschriftungen in einer zweidimensionalen Struktur nicht nur mit ihren Eingabefeldern, sondern auch miteinander in Beziehung stehen.
[Überlegen Sie, was Sie tun würden, wenn anstelle von Eingabefeldern Zeichenfolgen oder numerische Werte angezeigt würden.]
quelle
Aus diesem Grund ziehe ich es vor, eine korrekte HTML-Semantik beizubehalten und ein möglichst einfaches CSS zu verwenden.
So etwas würde den Job machen:
Ein Nachteil ist jedoch, dass Sie möglicherweise für jedes Formular die richtige Etikettenbreite auswählen müssen. Dies ist nicht einfach, wenn Ihre Etiketten dynamisch sein können (z. B. I18N-Etiketten).
quelle
Ich bin ein großer Fan von Definitionslisten.
Sie lassen sich einfach mit CSS formatieren und vermeiden das Stigma, Tabellen für das Layout zu verwenden.
quelle
div
s genauso einfach zu erreichen (a hatdd
nur einen linken Rand von ~ 40px) und vermeidet jede semantische Verwirrung. Außerdem ordnet keines dieser Elemente die Beschriftungen / Eingänge in derselben Zeile an.mit CSS
das gibt dir so etwas wie:
quelle
clear
, um zu vermeiden, dass sich Formulare beispielsweise für geringere BreitenDie traditionelle Methode ist die Verwendung einer Tabelle.
Beispiel:
Viele würden jedoch argumentieren, dass Tabellen einschränken und CSS bevorzugen. Der Vorteil der Verwendung von CSS besteht darin, dass Sie verschiedene Elemente verwenden können. Aus Divs, geordneten und ungeordneten Listen können Sie das gleiche Layout erstellen.
Am Ende möchten Sie das verwenden, mit dem Sie sich am wohlsten fühlen.
Hinweis: Tabellen sind einfach zu beginnen.
quelle
Für die Grundlagen können Sie versuchen, sie in der Tabelle auszurichten. Die Verwendung von Tabellen ist jedoch schlecht für das Layout, da Tabellen für Inhalte gedacht sind.
Was Sie verwenden können, sind CSS-Floating-Techniken.
CSS-Code
HTML
Ein ausführlicher Artikel, den ich geschrieben habe, beantwortet die Frage des IE7-Float-Problems: IE7-Float-Right-Probleme
quelle
ul
Tags verwenden.)Ich weiß, dass dies bereits beantwortet wurde, aber ich habe einen neuen Weg gefunden, sie gut auszurichten - mit einem zusätzlichen Vorteil - siehe http://www.gargan.org/en/Web_Development/Form_Layout_with_CSS/
Grundsätzlich verwenden Sie das Beschriftungselement um die Eingabe und richten es folgendermaßen aus:
und dann mit css richten Sie einfach aus:
quelle
Cléments Antwort ist bei weitem die beste. Hier ist eine etwas verbesserte Antwort, die verschiedene mögliche Ausrichtungen zeigt, einschließlich Links-Mitte-Rechts-ausgerichteter Schaltflächen:
Ich habe rechts von allen Beschriftungen (
padding-right:8px
) einige Auffüllungen hinzugefügt , um das Beispiel etwas weniger schrecklich aussehen zu lassen. Dies sollte jedoch in einem realen Projekt sorgfältiger erfolgen (das Hinzufügen von Auffüllungen zu allen anderen Elementen wäre ebenfalls eine gute Idee).quelle
CSS Ich habe dieses Problem gelöst, ähnlich wie Gjaa, aber besser gestylt
Hier ist mein HTML-Code, der speziell für ein einfaches Registrierungsformular ohne PHP-Code verwendet wird
Es ist sehr einfach und ich fange gerade erst an, aber es hat ganz gut funktioniert
quelle
Fügen Sie Eingabe-Tags in eine ungeordnete Liste ein. Machen Sie den Stiltyp none. Hier ist ein Beispiel.
Hat für mich gearbeitet!
quelle
UL
würde nur den Inhalt vom Rand weg einrücken, nichts ausrichten. Wenn Sie dasinput
sLI
einfügen, wird nur ein Aufzählungszeichen vor ihnen eingefügt (ja, sie werden als Liste und nicht an den Beschriftungen ausgerichtet). Außerdem würde "Input2" beim vorherigeninput
Element bleiben , da dieLI
nicht geschlossen sind (es gibt keine</li>
) und es keinen Start<li>
für dieses "Label" gibt, so dass es so behandelt wird, wie es sollte. Daher wird allgemeiner Text mit dem verknüpft vorheriges Element. Zuletzt hat der Code einen Fehler, das Schließen<ul/>
sollte sein</ul>
.Im CSS müssen Sie sowohl Beschriftung als auch Eingabe als Anzeige deklarieren: Inline-Block und Breite entsprechend Ihren Anforderungen angeben. Hoffe das wird dir helfen. :) :)
quelle
Einfach hinzufügen
Setzen Sie einfach Align in das öffnende Tag.
quelle
form
es keinalign
Attribut gibt (und selbst wenn dies der Fall wäre, würde es für die Verwendung von Stil / CSS veraltet sein). Auch das schließende Tag ist falsch, sollte es sein</form>
. Es ist möglich , zu definieren ,style="text-align:center"
innerhalb demform
, was den ganzen Inhalt des Formulars in der Mitte ausrichten würde, aber das ist nicht das, was die ursprüngliche Frage ging. Dies würde die Beschriftungen niemals an ihren Eingabefeldern ausrichten (ja, ich habe auf Firefox 75 getestet, nur um sicherzugehen).