The OP is asking about a very simple link rollover. Since it appears people aren't taking RobG's advice and looking up "CSS rollovers" on Google, here is a quick demonstration:

http://test.learningjquery.com/css-background-image.html

On May 22, 2009, at 2:41 PM, Andy Matthews wrote:

I believe your CSS is invalid. I don't think you can apply both a class AND
an ID in the same selector which is what #base-state.active does.

The CSS is perfectly valid, as you can see if you copy and paste it in here: http://jigsaw.w3.org/css-validator/#validate_by_input

Now
#base-state:active might work as that's a pseudo class.

The :hover pseudo-class will work just fine. If you want the state to change when the user tabs onto the link, then use :focus as well.

As others have already noted, this requires absolutely no jQuery/ JavaScript whatsoever.

For IE6, however, if you're getting a flash in between states, you'll want to add the following somewhere in the <head> (or reference a script file that does the same):

  <!--[if lte IE 6]>
    <script type="text/javascript">
      try {
        document.execCommand('BackgroundImageCache', false, true);
      } catch(e) {}
    </script>
  <![endif]-->

-----Original Message-----
Behalf Of ButtersRugby

Then in your css,

#base-state {background-position: 0px 0px;}   // The first 0 is the X
axis position, the second is the Y
#base-state.active {background-position: 0px 30px;} // This is our second
class that we will switch to with our jquery

You probably meant to use a negative number for the y axis on #base- state.active

#base-state.active {background-position: 0px -30px;}



$(document).ready(function() {
 $("#base-state").click(function() {
     $(this).toggleClass("active");
     }
  )
});

The OP wanted the state to change on hover, not click. Anyway, jQuery is not necessary.


--Karl

____________
Karl Swedberg
www.englishrules.com
www.learningjquery.com



Reply via email to