[ad_1]

Hast du dich schon immer gefragt, wie man Checkboxen und Radiobuttons gestalten kann, ohne dabei JavaScript zu verwenden? Dank CSS3 kannst du dies! Hier ist, was wir erstellen werden:

Sie sehen gerade einen Platzhalterinhalt von Standard. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf den Button unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Weitere Informationen

Wenn du auf der Suche nach Grafiken bist, die du in deinem Formular als UI Elemente verwenden kannst, schau dir doch die UI Kits, die bei Envato Elements verfรผgbar sind an. Anderenfalls, hol dir eine Tasse Kaffee und starte mit diesem Tutorial!

1. Verstehen des Prozesses

Empfohlener Artikel: The 30 CSS Selectors you Must Memorize

Fรผr diejenigen, die sich mit CSS vertraut fรผhlen und nur einen Schub in die richtige Richtung, hier ist die wichtigste Zeile des CSS des gesamten Tutorials:

Nun, fรผr diejenigen die mehr Richtung benรถtigen, fรผrchtet euch nicht und lest weiter!

Also, zรผruck zum Thema. Was genau machen wir? Nun ja, durch den genialen CSS3 pseudo Selektor :checked kรถnnen wir ein Element anpeilen und bekommen den Status ob es angehakt oder abgehakt ist. Wir kรถnnen den angrenzenden Bruder, also den + Selektor von CSS2.1 verwenden, um das Element, dass sich direkt nach der Checkbox oder dem RadioButton befindet, anzuvisieren. In unserem Fall ist dies das Label.

2. Einrichten unseres HTML

Jetzt starten wir damit, unsere HTML und CSS Dateien (oder wie auch immer du deine Styles verwaltest) und starten mit der Arbeit. Ich gehe davon aus, du weiรŸt wie man dies macht, also gehe ich nicht nรคher darauf ein.

Fรผr den Zweck, damit du auf deinen eigenen Weg kommst, demonstriere ich nur die Technik an einer Checkbox, aber der Ablauf fรผr RadioButtons ist identisch, und auch in der Quelle inkludiert.

Okay, fangen wir endlich an, sollen wir? Wir starten mit der Erstellung unserer Checkbox-Eingabe, gefolgt von einem Label.

Nur fรผr den Fall, dass du nicht genug รผber das <label> Element weiรŸt, du musst es mit einem Input verknรผpfen, damit du mit dem Input รผber das Label interagieren kannst. Dies funktioniert mit for="" und der Input ID.

Ich werde auch ein <span> Element innerhalb des Labels setzen, dies ist eine persรถnliche Vorliebe und nichts anderes, aber das wird sich klarstellen in Schritt 3.

3. Warum wir hier sind: CSS

Hier beginnt der eigentliche SpaรŸ. Zuerst erledigen wir die Grundlage des gesamten Tutorials, indem wir die aktuelle Checkbox verstecken.

Wenn dies erledigt ist, kรถnnen wir das Label personalisieren, aber wir personalisieren eher mehr das span Element innerhalb des Labels. Dies mache ich deshalb, damit ich mehr Kontrolle รผber die exakte Position der Checkbox habe. Ohne dem, wรผrdest du mรถglicherweise ein Hintergrundbild in einem Label direkt verwenden und das korrekte Positionieren kรถnnte schwierig werden.

So, lass mich dies kurz erklรคren. Als erstes, beachte den Hintergrund. Ich habe ein kleines Spritesheet fรผr diese, also alles was ich zu tun habe, ist die Hintergrundposition dieses Span Elements zu setzen. Das span selbst, ist genau die Breite und Hรถhe wie jedes “Sprite” in dem Sheet. Dies macht es sehr einfach jeden einzelnen Status zu definieren.

Our sprite sheet
Unser Sprite Sheet

Das ist der Rest des CSS, personalisiert auf mein Styling. Dies ist reine ร„sthetik und trifft meinen Geschmack.

4. Funktionstรผchtig machen

Es ist nicht mehr viel Arbeit รผbrig, also lass uns dies erledigen. Das Letzte was zu tun ist, ist den Status fรผr das Element, wenn der Input angehakt ist, zur Verfรผgung zu stellen. Optional auch fรผr beim hovern. Dies ist ziemlich einfach, seh es dir an!

Sie sehen gerade einen Platzhalterinhalt von Standard. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf den Button unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Weitere Informationen

Beachte, weil ich ein Spritesheet verwendet habe, muss ich nur die Hintergrundposition รคndern. Beachte auch, alles was ich tun musste, um den Style des Span Elemnts zu รคndern, wenn du die Checkbox anhakst, war das Verwenden des CSS3 :checked pseudo Selektor.

Kurze Anmerkung zur Browser Unterstรผtzung

Pseudo Selektoren haben eine super Unterstรผtzung รผber alle Browser, aber รผbliche Einschrรคnkungen gelten und der Fallback ist ziemlich elegant:

Can I use data for pseudo selectors
Can I Use Daten fรผr generelle Pseudo Selektoren
IE9 on Windows 7
Fallback: IE9 auf Windows 7

Frรผhe mobile Browser sind auch ein Problem – der Support von :checked ist nicht klar. Mobile Safare pre iOS 6 bietet beispielsweise keine Unterstรผtzung.

Fazit

Also, wir sind fertig, richtig? Gut, lass uns zuerst doppelt kontrollieren. Als erstes das HTML:

Sieht deins gleich aus? Vergiss nicht aufs Hinzufรผgen des <span>! Wenn du selbst damit herumexperimentierst, empfehle ich dir neue oder andere Wege zu finden, wie man diesen Teil erledigt. Ich wรผrde es lieben, wenn ich sehe was du daraus gemacht hast, dass es effizienter ist. Nun das CSS:

Alles vorhanden? Perfekt. Beachte bitte, dass vieles dieses Stylings auf meinen Style personalisiert ist, den ich fรผr die Demo-Dateien erstellt habe. Ich ermutige dich, dass du deine eigenen erstellst und mit der Platzierung und Prรคsentation dieser expermentierst.

Zusammenfassend, das wichtigste, dass du von dieser ersten Zeile vom CSS, das ich ganz oben geschrieben habe, mitnehmen sollst:

Wenn du dies verwendest, kannst du verschiedenste Dinge mit ย vollstรคndigem Auftritt erstellen. Die Mรถglichkeiten mit :checked gehen รผber Checkboxen und Radios in Formularen darรผber hinaus, aber ich lasse dies hier so stehen und lass dich selbst damit herumexperimentieren. Einige Dinge zum herumprobieren:

  • Hinzufรผgen eines 2x Spritesheet fรผr Retina-Bildschirmen
  • Verwende SVG anstatt einer Bitmap

Ich hoffe dieser kurze Artikel hat dir gefallen und du nimmst das, was du hier gesehen hast und erweiterst/verbesserst es!

[ad_2]

Source link