Bei kleineren Anpassungen in einem unserer Projekte ist heute im alten Standard-Browser von Android ein Bug[1] aufgefallen, der dazu führte, dass die Listenelemente mit initial verstecktem Inhalt diesen beim Anklicken nicht anzeigten.

Nach einer kurzen Recherche bin ich hier auch auf die Lösung gestoßen, den Checkbox Hack on Mobile Webkit[2]. Klingt fies, ist aber nur eine kleine Vorsichtsmaßnahme, die man beim HTML und CSS zusammenklöppeln beachten sollte.

Bei der Verwendung des General Sibling (~) Selektoren in CSS in Verbindung mit einer Pseudoklasse (:hover, :checked, …) wird in diesen alten Versionen von WebKit immer nur das nächste Element angesprochen, also quasi das Verhalten des Adjacent Sibling Selektors (+) nachgebildet. Zum besseren Verständnis ein paar…

Beispiele

Ausgangssituation ist folgendes CSS, welches einen nachfolgenden Paragraphen im HTML einblenden soll, sobald eine vorhergehende Checkbox angehakt wurde:

p {display:none;}
input:checked ~ p {display:block;}

Folgendes HTML wird nicht funktionieren, da der versteckte Paragraph nicht das exakt nächste Element zur Checkbox ist, die diesen beim :checked Status einblenden soll.

<input id="foo" type="checkbox" />
<label for="foo">Aus-/Einklappen</label>
<p>Initial versteckter Content.</p>

Stellt man das HTML hingegen so um, dass die Checkbox und der Paragraph direkt nacheinander und auch exakt in dieser Reihenfolge ausgespielt werden, greift das CSS und der Paragraph wird angezeigt sobald die Checkbox angehakt wurde.

<label for="foo">Aus-/Einklappen</label>
<input id="foo" type="checkbox" />
<p>Initial versteckter Content.</p>

Man sieht also: Kleine Änderung, große Wirkung. Und leider kann man diesen alten Browser noch nicht ganz vernachlässigen. Aktuell hat er weltweit gesehen immer noch ca. 20% Marktanteil[3]. Der Bug ist in aktuelleren Versionen von WebKit behoben worden, so dass Chrome und Safari nicht mehr davon betroffen sind.

Quellen

[1] https://css-tricks.com/webkit-sibling-bug/
[2] https://css-tricks.com/forums/topic/checkbox-hack-on-mobile-webkit/#post-106539
[3] http://gs.statcounter.com/#mobile+tablet-browser-ww-monthly-201402-201502

Benjamin Hofmann

Senior Web-Entwickler bei infomax am Standort Bremen

Share
Published by
Benjamin Hofmann

Recent Posts

Smashing Conference 2026 in Amsterdam

Dieses Jahr wurde es wieder einmal Zeit, eine Smashing Conference zu besuchen, diesmal in der…

7 Tagen ago

Wie man ein Selfie mit Kevin Powell bekommt

"Wir sind dann nächste Woche auf der SmashingCon. Sollen wir jemandem was aus Amsterdam mitbringen,…

2 Wochen ago

imx.Platform Lab 2026: Zukunft im Blick

Gelebtes Anwenderforum Das imx.Platform Lab ist mehr als ein weiterer Termin in Ihrem Kalender. Es…

2 Wochen ago

imx.Platform News: MCP-Endpunkt, Aufgaben-Modul und neue KI-Funktionen

Inhalte aus der imx.Platform werden für KI-Systeme noch besser zugänglich und redaktionelle Arbeit wird effizienter…

2 Wochen ago

imx.Platform @The Future of German Media

Summit in Hannover, Zeit für Perspektivwechsel. Neue Perspektiven erweitern den Horizont, ermöglichen persönliches Wachstum und…

2 Monaten ago

#imxkickoff2026: Neues Jahr, neue Challenge.

Der #imxkickoff 2026 führt unser Team für drei inspirierende Tage in winterlicher Kulisse zusammen. Zwischen…

3 Monaten ago