Rollovers without preloading

Another popular method for handling image rollovers is known as the “Pixy No-Preload Rollover” technique introduced by Petr Staníek (aka “Pixy”) in his article “Fast Rollovers without Preload” (http://wellstyled.com/css-nopreload-rollovers.html). In this method, all the rollover states are placed in one image, and only the background-position is changed for each link state. This avoids the need to load or preload multiple images for each rollover and can speed up display.

Figure 24-14 shows the image that contains both the default background image and the hover state. The style rule shifts the position of the initial background image down by the height of the element, revealing the appropriate portion of the image.

    a { display: block;
        width: 150px;
        height: 30px;background: url(allbuttons.gif) top left no-repeat #666; }
     
    a:hover {background url(allbuttons.gif) 30px left no-repeat #eee; }
Containing all rollover states in one image

Figure 24-14. Containing all rollover states in one image

Warning

Applying background images and rollovers can cause a flickering effect in Internet Explorer on Windows. One solution is to apply the background image to both the link (a) and its containing element. For an in-depth look at this problem and possible solutions, see the article, “Minimize Flickering CSS Background Images in IE6” by Ryan Carver at http://www.fivesevensix.com/studies/ie6flicker/.

Get Web Design in a Nutshell, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.