Inhalte verantwortungsvoll ausblenden

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Wir haben die Idee des Ausblendens von Dingen in CSS schon oft hier behandelt. Der jüngste Beitrag war Marko Ilics „Vergleich verschiedener Methoden zum Ausblenden von Dingen in CSS“, der die verschiedenen Techniken gut verglichen hat, die man in verschiedenen Situationen verwenden würde. Kitty Giraudel hat etwas Ähnliches in „Hiding Content Responsibly“ getan, das sich mit 10 Methoden beschäftigt – und selbst diese, könnte man sagen, sind nicht vollständig umfassend.

Bedeutet das, dass CSS unübersichtlich und unverständlich ist? Nein. Ich finde, alle Methoden sind logisch, haben gute Anwendungsfälle und führen zu guten Ergebnissen. Erlauben Sie mir, eine vorgetäuschte Konversation zu führen, die meinen Gedankengang hier durchläuft.

Ich muss dieses Ding komplett ausblenden. Für alle.

Kein Problem, verwenden Sie display: none;.

Ich muss dieses Ding ausblenden, aber nur für Screenreader, nicht visuell. (Zum Beispiel ein Symbol, das für Screenreader keine zusätzliche Bedeutung hat, da eine zugängliche Beschriftung in der Nähe vorhanden ist.)

Kein Problem, dafür ist das Attribut aria-hidden da.

Ich muss dieses Ding ausblenden, aber nur visuell, nicht für Screenreader. (Zum Beispiel der Inhalt nicht aktiver Tabs.)

Kein Problem, verwenden Sie eine .sr-only Klasse. Das lässt es zugänglich, blendet es aber visuell aus, bis Sie diese Klasse entfernen.

Ups, ich möchte dieses Ding tatsächlich visuell ausblenden, möchte aber, dass es physischen Platz einnimmt und nicht kollabiert. (Zum Beispiel, ein Button hat ein Lade-Spinner-Symbol, das nur bei einer Aktion benötigt wird. Die Größe des Buttons sollte die Größe dieses Symbols jederzeit berücksichtigen, nicht nur, wenn der Spinner sichtbar ist. So gibt es keine Layout-Verschiebungen, wenn das Symbol kommt und geht.)

Kein Problem, verwenden Sie transform: scale(0), das es visuell kollabiert, aber der ursprüngliche Platz bleibt bestehen und es bleibt für Screenreader zugänglich.

Oh nett, ich könnte die Transformation auch transitionen, nehme ich an. Aber eigentlich passt diese transition nicht gut zu meiner Website. Ich möchte nur etwas, das ich aus- und einblenden kann.

Die opacity-Eigenschaft ist transitional, also überblenden Sie diese zwischen 0 und 1 für Fades. Die gute Nachricht ist, dass visibility auch transitional ist. Beim Ausblenden verwenden Sie visibility: hidden und beim Einblenden visibility: visible, um das Ding für Screenreader aus- und einzublenden.


Das ist nicht ganz umfassend, aber ich finde, das deckt 95% der Ausblendfälle ab.