Bouton on/off avec CSS

inflamers
Invité n'ayant pas de compte PHPfrance

06 juil. 2016, 23:19

Bonjour

J'ai 2 boutons on/off basés sur des checkbox avec CSS qui ne fonctionnent pas très bien. Quand je clique sur le 1er, ça fonctionne, quand je clique sur le 2ème ça modifie le 1er et pas le 2ème.... Je ne comprends pas pourquoi...

Voici le code CSS :

Code : Tout sélectionner

.onoffswitch { position: relative; width: 90px; -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none; } .onoffswitch-checkbox { display: none; } .onoffswitch-label { display: block; overflow: hidden; cursor: pointer; border: 2px solid #999999; border-radius: 20px; } .onoffswitch-inner { display: block; width: 200%; margin-left: -100%; transition: margin 0.3s ease-in 0s; } .onoffswitch-inner:before, .onoffswitch-inner:after { display: block; float: left; width: 50%; height: 30px; padding: 0; line-height: 30px; font-size: 14px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold; box-sizing: border-box; } .onoffswitch-inner:before { content: "ON"; padding-left: 10px; background-color: #34A7C1; color: #FFFFFF; } .onoffswitch-inner:after { content: "OFF"; padding-right: 10px; background-color: #EEEEEE; color: #999999; text-align: right; } .onoffswitch-switch { display: block; width: 18px; margin: 6px; background: #FFFFFF; position: absolute; top: 0; bottom: 0; right: 56px; border: 2px solid #999999; border-radius: 20px; transition: all 0.3s ease-in 0s; } .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { margin-left: 0; } .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { right: 0px; }
Et le code PHP :

Code : Tout sélectionner

<link rel="stylesheet" href="button.css" type="text/css"> <div class="onoffswitch"> <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" checked> <label class="onoffswitch-label" for="myonoffswitch"> <span class="onoffswitch-inner"></span> <span class="onoffswitch-switch"></span> </label> </div> <div class="onoffswitch"> <input type="checkbox" name="onoffswitch2" class="onoffswitch-checkbox" id="myonoffswitch" checked> <label class="onoffswitch-label" for="myonoffswitch"> <span class="onoffswitch-inner"></span> <span class="onoffswitch-switch"></span> </label> </div>
Merci !
Mickael.

Mammouth du PHP | 1967 Messages

07 juil. 2016, 07:32

en HTML, un identifiant doit être unique

tes 2 boutons on le même id="myonoffswitch" et le même attribut for qui s'y réfère, si tu modifie juste un petit peu cet id et le for en conséquence, ca devrait fonctionner mieux.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube