Welcome to WebmasterWorld Guest from 54.196.244.45

Forum Moderators: coopster & jatar k

Message Too Old, No Replies

image rollovers.

     
12:21 pm on Aug 30, 2010 (gmt 0)

Senior Member

WebmasterWorld Senior Member 10+ Year Member

joined:Dec 16, 2004
posts:946
votes: 0


Whats the best way todo image rollovers these days.

must be cross broswer compatable etc.

javascript? php? dhtml?
5:57 pm on Aug 30, 2010 (gmt 0)

Senior Member

WebmasterWorld Senior Member rocknbil is a WebmasterWorld Top Contributor of All Time 10+ Year Member

joined:Nov 28, 2004
posts:7999
votes: 0


None of those . . . CSS. :-)

The best way I've found is to create the image as a background image on the anchor:

<a id="home-link" class="main-nav" href="/">Home</a>

#home-link {
display: block;
width: 150px;
height:25px;
background:url(/images/home-nav.gif) top left no-repeat;
}

The image has **both** the normal and mouseover state, with the normal at top

------------
--- HOME ---
------------
--- HOME --- <-- mouseover
------------

then

.main-nav:hover {
background-position: 0 -25px;
}

the numbers may be incorrect, but you get the idea, play with it. The idea is to shift the background up by the height of the button.)

If all your images are the same size, you can use the class, otherwise you may need to use

#home-link:hover

instead.

This loads both normal and hover at the same time in one image, faster loading, no delay for second image to load, no Javascript required.
10:01 am on Aug 31, 2010 (gmt 0)

Junior Member

5+ Year Member

joined:Dec 5, 2008
posts: 94
votes: 0


None of those . . . CSS. :-)


Agreed.

One little addition that I use when you have the background-position of the 'normal' state set to 'top left' you can set the hover position using keywords :

.main-nav:hover {
background-position: bottom left;
}

So you don't have to worry about setting the offset ('-25px' in this case) for the image in question.
8:25 pm on Aug 31, 2010 (gmt 0)

Senior Member

WebmasterWorld Senior Member 10+ Year Member

joined:Dec 16, 2004
posts:946
votes: 0


thanks guys im going to play around with that!