Vorladen von CSS-Bildern für :hover
Die Navigation von dracoblue.net habe ich mit CSS-Background Bildern und einem :hover-effect gemacht. Beim Hovern, wird das Bild dann einfach in einer etwas helleren Version zeigt.
Es gibt also:
und
In meinem CSS, sieht das dann so aus:
2
3
4
5
6
background: transparent url('menu_news.png') no-repeat;
}
a#newsLink:hover {
background: transparent url('menu_news_hover.png') no-repeat;
}
All dass ist natürlich gängige Praxis, aber ich hatte damit ein Usability-Problem für meine Benutzer. Die *hover.png Dateien werden erst geladen, sobald man mit der Maus über den Navigationseintrag geht, ihn also hover't. In der Perspektive des Serverbesitzers, ist man darüber vielleicht froh. Aber für den Benutzer, ist das neue (hellere) Bild, für knapp eine Sekunde nicht verfügbar. Es dauert ja ein bisschen, bis das Bild vom Server zum User kommt.
Hier nun meine Lösung, woe man die Bilder vorlädt (ohne Javascript oder stub-<img>'s zu benutzen).
2
3
4
5
6
7
8
9
10
11
12
13
background: transparent url('menu_news.png') no-repeat;
}
td#newsLink a:hover {
background: transparent url('menu_news_hover.png') no-repeat;
}
td#newsLink {
background:
transparent
url('menu_news_hover.png')
fixed no-repeat
-120px -120px;
}
In dem Beispiel habe ich das #newsLink auf das td des eigentlichen Links verschoben. Abschließend, habe ich eine neue Definition eingefügt, die ein sich nicht-wiederholendes und - mit Koordinaten -120x-120 - eindeutig unsichtbares Bild anzeigt.
Messages
pa download lng po
hola saludos a todos
@3
Klingt gut, so hätte man nur ein Bild und damit nur einen Request. Danke Dir!
Warum machst du dir das so umständlich?
Mach doch einfach beide Grafiken in eine Grafik und verschiebe diese mit der background-Eigenschaft per CSS. CSS-Sprite-Technik ist das Stichwort ;)
Thanks for the comment! It was not clear to me, that the correct order is "forced". I adjusted all code examples, so its hopefully educational ;).
About the Preview-Button: I should add that ;).
Some nitpicking: It should be
background: #color# #url# #repeat# #attachment# #position#;
for shorthand CSS background property. ;-)
td#newsLink {
background: url('menu_news_hover.png'); no-repeat -120px -120px;
}
PS: Where's that preview button? :P




