Können wir einen Live-Link oder eine jsFiddle für Ihren Code sehen?
Nitesh
3
Erstellen Sie ein Optionsfeld und legen Sie es in einem versteckten Div ab. Wenn Sie auf ein Bild klicken, setzen Sie das Kontrollkästchen aktiviert. Beim ersten Bild klicken Sie auf das erste Optionsfeld und in ähnlicher Weise auf die anderen beiden. Wenn Sie nicht haben, kann ich auch per Code erklären.
<labelclass="rad"><inputtype="radio"name="rad1"value="a"><i></i> Radio 1</label><labelclass="rad"><inputtype="radio"name="rad1"value="b"checked><i></i> Radio 2</label><br><labelclass="ckb"><inputtype="checkbox"name="ckb1"value="a"checked><i></i> Checkbox 1</label><labelclass="ckb"><inputtype="checkbox"name="ckb2"value="b"><i></i> Checkbox 2</label>
+1 für den Pseudo-Selektor, ich glaube, ich habe in der Vergangenheit JavaScript verwendet, um nach ausgewählten zu suchen! Das wird mich lehren ...
zik
3
Versteckte Sichtbarkeit bedeutet, dass es nicht anklickbar ist, und Position Absolue nimmt es aus dem Dokumentenfluss heraus
99 Probleme - Syntax ist nicht ein
1
Dies ist eine ausgezeichnete Antwort. Darf ich hinzufügen, dass das auch funktioniert type="checkbox".
Wtower
ok das ist schön .. funktioniert super, funktioniert anscheinend auch im IE, ist es aber eigentlich nicht. Das Bild verhält sich korrekt, aber wenn das Formular gesendet wird, erfolgt keine Auswahl der Miniaturansichten. Ich denke, ich benutze den neuen IE, der mit Win 8.1 kommt. Irgendeine Idee?
Junaid Rehman
3
Spät zur Party, aber sei vorsichtig damit. Visibility:hiddenversteckt die Eingaben vom Bildschirmleser und ein großes Nein Nein vom Standpunkt der Barrierefreiheit.
DPac
99
Beispiel:
Kopf hoch! Diese Lösung ist nur CSS.
Ich empfehle Ihnen, CSS3 zu nutzen, indem Sie das Optionsfeld für die Standardeingabe mit den CSS3-Regeln ausblenden :
Das war großartig! Ich habe es in ein ASP.NET-Formular integriert und es hat wie ein Zauber funktioniert :)
Gus
Dieses Beispiel funktioniert nicht in Firefox 49.0.2 unter XUbuntu 16.04.1
Sergey Kudriavtsev
@SergeyKudriavtsev Möglicherweise muss der Code aktualisiert werden (diese Antwort stammt aus dem Jahr 2013). Zum Glück kann jeder den Code verbessern. Ich werde es mir bald ansehen. Prost.
Richard Cotrina
Funktioniert gut für mich in Firefox 60, Windows 10.
Trevor
Ich habe dies für einen Satz von 3 Smileys arbeiten. Jetzt muss ich mehrere Zeilen in einem Formular haben, jede mit ihren eigenen Smileys. Mein Problem ist, dass sich alle ändern, wenn eine Zeile geändert wird. Irgendwelche Ideen, welcher Teil modifiziert werden muss, um dies zu erreichen?
Lassen Sie Optionsfelder ausgeblendet, und wählen Sie sie beim Klicken auf Bilder mit JavaScript aus und gestalten Sie Ihr Bild so, dass es wie ausgewählt aussieht. Hier ist das Markup -
jQueryUI kümmert sich um den Bildhintergrund, damit Sie wissen, welche Schaltfläche aktiviert ist.
Achtung: Wenn Sie eine Schaltfläche so einstellen möchten, dass sie über Javascript aktiviert oder deaktiviert ist, müssen Sie die Aktualisierungsfunktion aufrufen:
<div><inputtype="radio"id="shipadd1"value=1name="address"/><labelfor="shipadd1"></label>
value 1
</div><div><inputtype="radio"id="shipadd2"value=2name="address"/><labelfor="shipadd2"></label>
value 2
</div>
Antworten:
<label>
display:none
odervisibility:hidden
da dies die Zugänglichkeit beeinträchtigt)+
Vergessen Sie nicht , Ihren Labels eine Klasse hinzuzufügen , und verwenden Sie diese Klasse stattdessen in CSS .
Benutzerdefinierte Stile und Animationen
Hier ist eine erweiterte Version, die das
<i>
Element und das:after
Pseudo verwendet:quelle
type="checkbox"
.Visibility:hidden
versteckt die Eingaben vom Bildschirmleser und ein großes Nein Nein vom Standpunkt der Barrierefreiheit.Beispiel:
Ich empfehle Ihnen, CSS3 zu nutzen, indem Sie das Optionsfeld für die Standardeingabe mit den CSS3-Regeln ausblenden :
Ich habe vor ein paar Tagen nur ein Beispiel gemacht.
quelle
Sie können dafür CSS verwenden.
HTML (nur für Demo, es ist anpassbar)
CSS
jsFiddle
quelle
Lassen Sie Optionsfelder ausgeblendet, und wählen Sie sie beim Klicken auf Bilder mit JavaScript aus und gestalten Sie Ihr Bild so, dass es wie ausgewählt aussieht. Hier ist das Markup -
und JS
CSS
quelle
Verwenden Sie einfach eine Klasse, um nur einige auszublenden ... basierend auf https://stackoverflow.com/a/17541916/1815624
quelle
Hier ist eine einfache jQuery-UI-Lösung, die auf dem folgenden Beispiel basiert:
http://jqueryui.com/button/#radio
Geänderter Code:
jQueryUI kümmert sich um den Bildhintergrund, damit Sie wissen, welche Schaltfläche aktiviert ist.
Achtung: Wenn Sie eine Schaltfläche so einstellen möchten, dass sie über Javascript aktiviert oder deaktiviert ist, müssen Sie die Aktualisierungsfunktion aufrufen:
quelle
Bilder können anstelle von Optionsfeldern mithilfe von Beschriftungs- und Bereichselementen platziert werden.
Das Optionsfeld sollte ausgeblendet sein.
Das Bild kann im span-Tag angegeben werden.
Um das Bild beim Klicken auf das Optionsfeld zu ändern, fügen Sie dem Eingabe-Tag den aktivierten Status hinzu.
Wenn Sie Fragen haben, lesen Sie den folgenden Link: Wie ich die Lösung aus dem folgenden Blog entnommen habe: http://frontendsupport.blogspot.com/2018/06/cool-radio-buttons-with-images.html
quelle
Hier ist ein sehr einfaches Beispiel
Demo: http://jsfiddle.net/La8wQ/2471/
Dieses Beispiel basiert auf diesem Trick: https://css-tricks.com/the-checkbox-hack/
Ich habe es getestet auf: Chrom, Firefox, Safari
quelle