Wie in CSS img source ändern?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Es existiert keine Möglichkeit mit guter Browserkompatibilität, um Bilder mit CSS zu ändern. Deshalb schlage ich vor, mit Hintergrundbildern zu arbeiten. Dazu erstellst du einen Wrapper für dein Bild:

<div class="avatar-wrapper">
  <img src=“avatar.png” alt="Avatar" class=“avatar” />
</div>

Anschließend weist du dem Wrapper ein Hintergrundbild zu, welches zunächst jedoch durch das eigentliche Bild verdeckt ist:

.avatar-wrapper {
  display: inline-block;
  background-image: url(avatar2.png);
}

Beim Hovern verbirgst du nun das vordere Bild, indem du es transparent machst:

.avatar-wrapper >.avatar:hover {
  opacity: 0;
}

Zudem ist noch folgender Fix erforderlich:

.avatar-wrapper > .avatar {
  vertical-align: top;
}

Hier ein Live-Beispiel: https://jsfiddle.net/w2x3tsz0/