Est-il possible d'appliquer un style css (3) à une étiquette d'un bouton radio coché?
J'ai le balisage suivant:
<input type="radio" id="rad" name="radio"/>
<label for="rad">A Label</label>
J'espérais que
label:checked { font-weight: bold; }
ferait quelque chose, mais hélas pas (comme je m'y attendais).
Existe-t-il un sélecteur capable de réaliser ce type de fonctionnalité? Vous pouvez entourer de divs, etc. si cela vous aide, mais la meilleure solution serait celle qui utilise l'attribut '' for ''.
Il convient de noter que je suis en mesure de spécifier des navigateurs pour mon application, donc le meilleur de la classe css3, etc. s'il vous plaît.
<label for="rad1">Radio 1</label><input id="rad1" type="radio" name="rad">
~
pour sélectionner des éléments de la fratrie qui ne sont pas nécessairement adjacents. css-tricks.com/child-and-sibling-selectors:checked
sélecteur n'est pas pris en charge .Je sais que c'est une vieille question, mais si vous souhaitez
<input>
être un enfant<label>
au lieu de les séparer, voici une manière CSS pure que vous pouvez y parvenir:Ensuite, enveloppez simplement le texte avec un
<span>
:Voir sur JSFiddle .
la source
<label>@Html.RadioButtonFor(..) someText<label>
, j'ai jeté<span>
"someText" et cela a fonctionné comme un charme. Je vous remercie!label:active { font-weight: bold; }
. Voir: jsfiddle.net/Gbq8Z/608 (wow, je ne peux pas croire que le violon a été bifurqué 608 fois).J'oublie où je l'ai vu mentionné pour la première fois, mais vous pouvez réellement intégrer vos étiquettes dans un conteneur ailleurs tant que vous avez l'
for=
attribut défini. Voyons donc un exemple sur SO:Ouf. C'était beaucoup pour un "échantillon" mais je pense que cela fait vraiment ressortir l'effet et le point: nous pouvons certainement sélectionner une étiquette pour un contrôle d'entrée vérifié sans que ce soit un frère. Le secret réside dans le fait de garder les
input
balises d'un enfant uniquement à ce qu'il doit être (dans ce cas - uniquement l'body
élément) .Puisque l'
label
élément n'utilise pas réellement le:checked
pseudo-sélecteur, peu importe que les étiquettes soient stockées dans leheader
. Cela a l'avantage supplémentaire que puisqueheader
c'est un élément frère, nous pouvons utiliser le~
sélecteur frère générique pour passer de l'input[type=radio]:checked
élément DOM auheader
conteneur, puis utiliser des sélecteurs descendants / enfants pour accéder auxlabel
s eux-mêmes, ce qui permet de les styliser lorsque leur les cases / cases à cocher radio respectives sont sélectionnées .Non seulement nous pouvons styliser les étiquettes, mais également styler d'autres contenus qui peuvent être les descendants d'un conteneur frère par rapport à tous les
input
s. Et maintenant, pour le moment que vous attendiez tous, le JSFIDDLE ! Allez-y, jouez avec, faites-le fonctionner pour vous, découvrez pourquoi cela fonctionne, cassez-le, faites ce que vous faites!J'espère que tout cela a du sens et répond pleinement à la question et éventuellement à tout suivi qui pourrait survenir.
la source
Si votre entrée est un élément enfant de la
label
et que vous avez plusieurs étiquettes, vous pouvez combiner l'astuce de @ Mike avecFlexbox
+order
.html css
Voir sur JSFiddle .
Remarque: le sélecteur de frères et sœurs ne fonctionne que dans le même parent. Pour contourner ce problème , vous pouvez masquer l'entrée au niveau supérieur à l'aide du hack @Nathan Blair .
la source
Vous pouvez utiliser un peu de jQuery:
Vous devez également vous assurer que vos boutons radio cochés ont également la bonne classe lors du chargement de la page.
la source
$('label[for="' + $(this).attr('id') + '"]').toggleClass();
METTRE À JOUR:
Cela ne fonctionnait que pour moi parce que notre code HTML généré était farfelu, générant des
label
s avec desradio
s et leur donnant les deuxchecked
attributs.Tant pis, et bravo à Brilliand pour l'avoir soulevé!
Si votre étiquette est le frère d'une case à cocher (ce qui est généralement le cas), vous pouvez utiliser le
~
sélecteur de frère et alabel[for=your_checkbox_id]
pour l'adresser ... ou donner un identifiant à l'étiquette si vous avez plusieurs étiquettes (comme dans cet exemple où je utiliser des étiquettes pour les boutons)Je suis venu ici à la recherche de la même chose - mais j'ai fini par trouver ma réponse dans les documents .
une
label
élément avecchecked
attribut peut être sélectionné comme suit:Je sais que c'est une vieille question, mais peut-être que ça aide quelqu'un là-bas :)
la source