Gunnar Bittersmann: Spezielles HTML Inputfeld entwerfen

Beitrag lesen

@@Gunnar Bittersmann

Was aber geht: :focus-within [Selectors Level 4 ED] – in unterstützenden Browsern als progressive enhancement.

Codepen: Away team

Und so geht’s:

.multiple-select-widget:not(:hover):not(:focus-within) input,
.multiple-select-widget:not(:hover):not(:focus-within) :not(:checked) + span
{
	display: none;
}

Wenn der Mauscursor nicht über der umschließenden Box liegt (:not(:hover)) und weder sie noch eine Checkbox den Fokus hat (:not(:focus-within)), dann werden alle Checkboxen (input) und alle Beschriftungen nicht-angehakter Checkboxen (:not(:checked) + span) ausgeblendet. Sichtbar bleiben also die Beschriftungen aller angehakter Checkboxen.

Wenn der Mauscursor über der umschließenden Box liegt oder sie oder eine Checkbox den Fokus hat, dann sind alle Checkboxen mit ihren Beschriftungen zu sehen. Wenn ein Browser :focus-within nicht unterstützt, dann auch.

Der Rest der Regeln ist Schmuck am Kleid.

LLAP 🖖

PS: Das div habe ich eingefügt, weil WebKits sich beharrlich weigern, display: flex auf fieldset anzuwenden. Meh.

--
“When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory