Je suis novice en HTML et j'essaie d'apprendre à utiliser les formulaires.
Le plus gros problème que j'ai jusqu'à présent est l'alignement des formulaires. Voici un exemple de mon fichier HTML actuel:
<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>
Le problème avec cela est que la zone de champ après «Email» est radicalement différente en termes d'espacement par rapport au prénom et au nom. Quelle est la «bonne» façon de faire en sorte qu'ils «s'alignent» essentiellement?
J'essaie de pratiquer une bonne forme et une bonne syntaxe ... beaucoup de gens pourraient le faire avec CSS Je ne suis pas sûr, je n'ai appris que les bases du HTML jusqu'à présent.
Réponses:
Un autre exemple, cela utilise CSS, je mets simplement le formulaire dans un div avec la classe conteneur. Et spécifié que les éléments d'entrée contenus à l'intérieur doivent être à 100% de la largeur du conteneur et ne comporter aucun élément de chaque côté.
la source
La réponse acceptée (définir une largeur explicite en pixels) rend difficile les modifications et s'interrompt lorsque vos utilisateurs utilisent une taille de police différente. L'utilisation de tables CSS, en revanche, fonctionne très bien:
Voici un JSFiddle: http://jsfiddle.net/DaS39/1/
Et si vous avez besoin que les étiquettes soient alignées à droite, ajoutez simplement
text-align: right
aux étiquettes: http://jsfiddle.net/DaS39/EDIT: Encore une note rapide: les tableaux CSS vous permettent également de jouer avec les colonnes: par exemple, si vous souhaitez que les champs de saisie prennent autant d'espace que possible, vous pouvez ajouter ce qui suit dans votre formulaire
vous pouvez ajouter
white-space: nowrap
aulabels
dans ce cas.la source
Une solution simple pour vous si vous êtes novice en HTML, consiste simplement à utiliser un tableau pour tout aligner.
la source
Je trouve beaucoup plus facile de changer l'affichage des étiquettes en bloc en ligne et de définir une largeur
la source
Vous devriez utiliser une table. En tant que question de structure logique les données sont tabulaires: c'est pourquoi vous voulez qu'elles s'alignent, car vous voulez montrer que les étiquettes ne sont pas liées uniquement à leurs boîtes de saisie mais aussi entre elles, dans une structure bidimensionnelle.
[pensez à ce que vous feriez si vous aviez des chaînes ou des valeurs numériques à afficher au lieu de zones de saisie.]
la source
Pour cela, je préfère garder une sémantique HTML correcte, et utiliser un CSS le plus simple possible.
Quelque chose comme ça ferait le travail:
Un inconvénient cependant: vous devrez peut-être choisir la bonne largeur d'étiquette pour chaque formulaire, et ce n'est pas facile si vos étiquettes peuvent être dynamiques (étiquettes I18N par exemple).
la source
Je suis un grand fan de l'utilisation des listes de définitions.
Ils sont faciles à styliser à l'aide de CSS et évitent la stigmatisation liée à l'utilisation de tableaux pour la mise en page.
la source
div
s (a add
juste une marge gauche de ~ 40px), et évite toute confusion sémantique. En outre, aucun de ceux-ci n'aligne les étiquettes / entrées sur la même ligne.en utilisant le CSS
cela vous donne quelque chose comme:
la source
clear
pour éviter que les formulaires ne s'empilent pour, par exemple, des largeurs moindresLa méthode traditionnelle consiste à utiliser une table.
Exemple:
Cependant, beaucoup diront que les tables sont restrictives et préfèrent CSS. L'avantage d'utiliser CSS est que vous pouvez utiliser divers éléments. À partir des divs, des listes ordonnées et non ordonnées, vous pouvez réaliser la même disposition.
En fin de compte, vous voudrez utiliser ce avec quoi vous êtes le plus à l'aise.
Astuce: les tableaux sont faciles à utiliser.
la source
Eh bien, pour les bases, vous pouvez essayer de les aligner dans le tableau. Cependant, l'utilisation de table est mauvaise pour la mise en page car la table est destinée au contenu.
Ce que vous pouvez utiliser, ce sont des techniques flottantes CSS.
Code CSS
HTML
Un article élaboré que j'ai écrit peut être trouvé répondant à la question du problème de flotteur IE7 : problèmes de flottement IE7 correct
la source
ul
balises.)Je sais que cela a déjà été répondu, mais j'ai trouvé une nouvelle façon de bien les aligner - avec un avantage supplémentaire - voir http://www.gargan.org/en/Web_Development/Form_Layout_with_CSS/
en gros, vous utilisez l'élément label autour de l'entrée et vous alignez en utilisant cela:
puis avec css vous alignez simplement:
la source
La réponse de Clément est de loin la meilleure. Voici une réponse quelque peu améliorée, montrant différents alignements possibles, y compris les boutons alignés gauche-centre-droite:
J'ai ajouté du rembourrage à droite de toutes les étiquettes (
padding-right:8px
) juste pour rendre l'exemple un peu moins horrible, mais cela devrait être fait plus soigneusement dans un vrai projet (ajouter un rembourrage à tous les autres éléments serait également une bonne idée).la source
css J'avais l'habitude de résoudre ce problème, similaire à Gjaa mais mieux stylé
Voici mon HTML, utilisé spécifiquement pour un simple formulaire d'inscription sans code php
C'est très simple, et je ne fais que commencer, mais cela a très bien fonctionné
la source
Insérez des balises d'entrée à l'intérieur d'une liste non ordonnée.Faites le type de style aucun. Voici un exemple.
A travaillé pour moi!
la source
UL
ne ferait qu'indenter le contenu de la marge, ne rien aligner. Mettre lesinput
sLI
ajouterait simplement une puce devant eux (oui, ils seraient alignés, sous forme de liste, pas contre les étiquettes). De plus, "Input2" resterait fidèle à l'input
élément précédent , car leLI
ne sont pas fermés (il n'y en a pas</li>
) et il n'y a pas de début<li>
pour ce "label", il sera donc traité comme il se doit, texte commun, donc, concaténé au élément précédent. Enfin, le code a une erreur, la fermeture<ul/>
devrait être</ul>
.Dans le CSS, vous devez déclarer à la fois l'étiquette et l'entrée comme display: inline-block et donner la largeur en fonction de vos besoins. J'espère que ceci vous aidera. :)
la source
Ajoutez simplement
Mettez simplement align dans la balise d'ouverture.
la source
form
n'a pas d'align
attribut (et même si c'était le cas, il serait déconseillé d'utiliser style / CSS). De plus, la balise de fermeture est erronée, elle devrait l'être</form>
. Il est possible de définirstyle="text-align:center"
à l'intérieur duform
, ce qui alignerait tout le contenu du formulaire au centre, mais ce n'est pas le sujet de la question d'origine. Cela n'alignerait jamais les étiquettes sur leurs champs de saisie (oui, j'ai testé sur Firefox 75, juste pour être sûr).