This works great. When you hover you see the bright button. That a really nice effect. Only, the client has to load that button in their browser and most often, there is a flash because between the time you start hovering that button and the time the load completes, the CSS pretty much says: display nothing.

CSS 3.x added a new feature to backgrounds. You may define more than one background per item. This is particularly useful to create all sorts of effects, such as having gradients over an image.

In our situation, this means we can continue to show the non-hovered background until the hovered one gets loaded.