Saut de ligne après une entrée sans balisage html
J'essaie d'afficher un nombre d'entrées et de leurs étiquettes correspondantes. Ils sont à la fois des éléments en ligne, et j'ai une solution qui fonctionne avec l'ajout d'une balise br à la fin comme
<label for="hello"></label>
<input id="hello" type="text" />
<br>
<label for="stackoverflow"></label>
<input id="stackoverflow" />
Aimerai résoudre ce sans superflu et de balisage HTML, j'.e avec les CSS. Quelle est la meilleure façon de le faire?
J'ai regardé d'autres questions semblables à ceci, mais l'alignement par ligne au lieu de par colonne.
- Juste pour la commodité du raisonnement, c'est-- données tabulaires. Il y a un certain élément HTML faites pour gérer ça....just sayin'
Vous devez vous connecter pour publier un commentaire.
Vous pouvez envelopper les étiquettes autour de vos données et de les afficher sous forme de blocs:
Notez que lorsque vous faites cela, vous n'avez pas besoin d'utiliser le
for="name"
attribut.L'autre sens (si vous ne voulez pas les étiquettes enroulé autour de vos entrées) consiste à faire flotter les étiquettes à gauche:
Cependant, en général, je préfère un peu plus de balisage, quelque chose qui relie le
label
et lainput
dans une logique d'éléments, appelé champ:Parce que chaque champ est un
div
, il s'affiche comme un bloc automatiquement, mais vous pouvez le contrôler pour les champs de l'individu en tant que bien.Essayer de mettre
display:inline-block
pour votreinput
etlabel
éléments. Ainsi, vous pouvez ajouter tout élément de type block en css spécifiques commewitdh
oumargin-bottom
.Vous pouvez également définir votre
input
etlabel
àdisplay:block
et ajoutermargin-bottom
seulement à l'entrée. Ou vous pouvez l'inverser et ajouter un margin-top à vos étiquettes 😉Si vous souhaitez supprimer la marge sur le dernier élément, vous pouvez utiliser
input:last-child {margin-bottom:0;}