CSS-Bildersatz überdenken

Avatar of Chris Coyier
Von Chris Coyier am

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

Wenn ich von CSS-Bildersatz spreche, meine ich, dass ein Seitenelement, das normalerweise kein Bild ist, in ein Bild umgewandelt wird. Dies ist ein sehr gängiger und beliebter Trick wegen seiner semantischen Aussagekraft und der SEO-Vorteile. Ein häufiger Anwendungsfall ist das Header-Tag.

Der ALTE Weg

<h1 class="main-logo">
   CSS-Tricks
</h1>
h1.main-logo {
	width: 350px; height: 75px;
	background: url(images/header-image.jpg);
	text-indent: -9999px;
}

PROBLEM:
Wenn CSS deaktiviert ist, wird dies einfach zu Text degradiert. Nichts Schlechtes, aber nur weil jemand CSS deaktiviert hat, bedeutet das nicht unbedingt, dass er auch seine Bilder deaktiviert haben möchte.

Der NEUE Weg

<h1 class="main-logo">
   <a href="#">
       <img src="images/header-image.jpg" alt="CSS-Tricks" />
   </a>
</h1>

WARUM DAS BESSER IST
Bei deaktiviertem CSS können Sie immer noch ein Bild anzeigen. Bei deaktiviertem CSS und Bildern erhalten Sie den ALT-Text des Bildes. Sie können sogar ein anderes Bild im Inneren verwenden als das, das Sie für Ihren CSS-Bildersatz verwendet haben, wenn es dafür einen guten kontextuellen Grund gibt.

VERBLEIBENDE PROBLEME
Keine dieser Techniken ist bisher perfekt. Während die letztere ein Puzzleteil löst, fehlt immer noch ein Teil. Das ist CSS AN, Bilder AUS. In diesem Szenario erhalten Sie leeren Platz anstelle von Text oder einem Bild. Nicht gut. Das andere Problem ist die Umwandlung dieser Elemente in Links. Sie können das Header-Tag in ein Anker-Element einschließen, aber ein Block-Element in ein Inline-Element einzuschließen ist schlechter Stil. Achten Sie darauf, Ihren Anker-Link auf Block-Ebene zu ändern, wenn Sie dies tun. Die andere Option ist ein JavaScript-onClick-Ereignis.

ANMERKUNG
Ich bin sicher, dass dies von Leuten schon früher bedacht und verwendet wurde, daher sind „alt“ und „neu“ hier eher subjektiv.

Demo ansehen

Vielen Dank an Volkan Volkan Görgülü für die Idee!