Comment aligner verticalement un bouton radio html pour du label?
J'ai un formulaire avec des boutons radio qui sont sur la même ligne que leurs étiquettes. Les boutons radio sont cependant pas aligné verticalement avec leurs étiquettes, comme indiqué dans la capture d'écran ci-dessous.
Comment puis-je aligner verticalement les boutons de la radio avec leurs étiquettes?
Edit:
Voici le code html:
<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/>
Et le code css:
label{
padding:5px;
color:#222;
font-family:corbel,sans-serif;
font-size: 14px;
margin: 10px;
}
- Quel est votre code ressemble à l'heure actuelle?
- montrez votre code css
- Mise à jour de votre question avec le code.
- Juste mis à jour à la question.
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
height= 100%;
depuis mon élément parent n'a pas explicitement de régler la hauteur.Je sais que j'avais sélectionné la réponse par menuka devinda mais en regardant les commentaires ci-dessous, il je l'ai dit d'accord et essayé de trouver une meilleure solution. J'ai réussi à venir jusqu'à présent et c'est à mon avis beaucoup plus solution élégante:
Merci à tous ceux qui ont offert une réponse, votre réponse n'est pas passée inaperçue. Si vous avez encore d'autres idées n'hésitez pas à ajouter votre propre réponse à cette question.
Mettre de classe pour tous les la radio. Cela fonctionne pour tous les bouton radio sur la page html.
Violon
essayez d'ajouter
vertical-align:top
dans le cssTest: http://jsfiddle.net/muthkum/heAWP/
font-size
puis essayez d'utiliser desdisplay:flex
. Voici une démo, jsfiddle.net/et8z47q5Vous pouvez le faire comme ceci :
DÉMOPourrait tout aussi bien ajouter un peu de flex pour les réponses.
CSS:
HTML:
Quelque chose comme cela devrait fonctionner
CSS:
Je suis juste aligner la verticale du milieu de la boîte avec la ligne de base du parent de la boîte de plus de la moitié de la hauteur d'x (en.wikipedia.org/wiki/X-height) de la maison mère.
Beaucoup de ces réponses dites d'utiliser
vertical-align: middle;
, qui obtient l'alignement de près, mais pour moi, c'est toujours une de quelques pixels. La méthode que j'ai utilisé pour obtenir vrai 1 à 1 de l'alignement entre les étiquettes et l'entrée radio est présente, avecvertical-align: top;
:CSS:
HTML:
Ajoutant
display:inline-block
des étiquettes et de leur donnerpadding-top
permettrait de résoudre ce problème, je pense. Aussi, la seule définition de l'line-height
sur les étiquettes aussi.Alors que je suis d'accord tables ne doivent pas être utilisés pour les modèles de mises en page contrairement à la croyance populaire, ils passent à la validation. c'est à dire la balise table n'est pas déconseillée. La meilleure façon d'aligner les boutons radio est à l'aide de la verticale aligner milieu CSS avec des marges ajustées sur les éléments d'entrée.
J'aime mettre les entrées à l'intérieur des étiquettes (bonus: maintenant, vous n'avez pas besoin de la
for
attribut sur l'étiquette), et de mettrevertical-align: middle
sur l'entrée.CSS:
HTML:
(Le
-2px margin-top
est une question de goût.)Une autre option que j'aime vraiment, c'est à l'aide d'un tableau. (Maintenez votre fourche! C'est vraiment sympa!) Cela signifie que vous devez ajouter le
for
attribuer à l'ensemble de vos étiquettes etid
s à vos entrées. J'avais cette option est recommandée pour les étiquettes avec de longs textes sur plusieurs lignes.HTML:
il y a plusieurs façon, celui que je préfère est à l'aide d'un tableau en html.
vous pouvez ajouter deux coloum trois lignes de la table et placez les boutons de la radio et de la lable.
.tablecell{dispay:table-cell;} ... <div class="tablecell">
semble plus comme un vilain solution de contournement pour les personnes qui ne veulent pas admettre qu'ils sont à l'aide de tableaux...