Herr Bertling.

Musik. Politik. Dinge.

RSS-Feed

Tutorial: CSS — Hover mit verlinkten Bildern

Hover-Effekte mit einem Hintergrund-Bild lassen sich ein­fach finden. Aller­dings brauche ich für meine Anwen­dung kein Hintergrund-Bild, son­dern ein ein­fa­ches, ein­ge­bun­denes Bild, da ich nicht für jedes Mit­glied ein eigenes Hintergrund-Bild (inklu­sive eigener #id etc.) anlegen möchte.Was tun? Zuerst einmal der HTML-Code:

<div class="memberarea">
<a href="#">
<img title="Mr. X" src=”das_bild.jpg” alt=”Mr. X" />
</a>
</div>

Wie man sieht, ist das Bild im Link ent­halten, der Link in einem umge­benden div. Das ein­ge­bun­dene Bild ent­hält bereits die beiden gewünschten Zustände . Ohne CSS sähe das Ergebnis noch recht trostlos aus.

Kommen wir also zum CSS-Teil:

div.memberarea {
width: 210px;
height: 200px;
overflow: hidden;
}
div.memberarea a {
text-decoration: none;
display: block;
width: 420px;
}
div.memberarea a img {
border: 0;
}
div.memberarea a:hover {
margin-left: -210px;
}

Zuerst wird dem umge­benden div eine feste Weite (die Hälfte der Bild-Breite) sowie eine feste Höhe zuge­wiesen (die Höhe des Bildes). Die Angabe over­flow: hidden bewirkt, dass nur die linke Bild-Hälfte ange­zeigt wird.

Nun wird das Link-Element bear­beitet: Das Unter­strei­chen des Links wird unter­bunden und ganz wichtig: Der Link wird zum Block-Element gemacht. Diesem Block-Element kann ich dann eine ent­spre­chende (näm­lich die Bild-) Breite geben.

Dem Bild-Element wird der Rahmen genommen, sieht nun mal schöner aus & ver­hin­dert kleine Pixel-Fehler, die durch einen Rahmen ent­stehen könnten.

Die eigent­liche Hover-Action findet im letzten Teil statt: Durch die nega­tive Ver­schie­bung des Links (der sich als Block-Element ver­schieben lässt) erscheint nun im div der rechte Teil des Bildes. Fertig.

(Viel­leicht gibt es ein ähn­li­ches Tuto­rial schon irgendwo, ich konnte aller­dings auf die Schnelle keins finden. Browser-Kompatibilität wurde ebenso nicht getestet, mit FireFox sowie Safari & Mac OS X funk­tio­nierts. Windows-Browser kann ich leider gerade nicht testen ;-) Was macht der IE? )

21.03.08

webdesign