answer:You could use CSS Sprites… at a very basic level, what you do it’s that both “states” of the image are on the same file, and on :hover, you use background-position to reveal the “active” image. You may have to edit your (X)HTML, but it should do the trick and it should work on all modern browsers. You could also try: .highligtit img{ filter: alpha(opacity=50); /* for MSIE */ opacity:0.5; /* for Firefox, Safari and Opera */ -moz-opacity:0.5; /* for Firefox (just in case) */ } It would still not validate in CSS2.1, since “opacity” it’s a CSS3 property, but at least it would work in most browsers.