The buttons there use a background image with the two colours, but only has enough space to show one.
On hover, it moves the background image so that the other colour is shown.
a.hover {background-position: 100% -30px; color:#000000}
It's a pretty well known web technique to save on request overhead - often all the images are concatenated into one image, and the position is altered to show the one you want.