Hi, sorry for the wait (weekend).
IE7 doesn’t do this, so it seems to be an IE8-only thing (and so also it isn’t anything to do with Haslayout).
That said, besides the super-annoying titles (links with link text should not have titles, esp not with exactly the same text!!), the only thing I see in the CSS that might be to blame is how you’ve styled the anchors… though I don’t see why or how this would be an issue with IE8. It’s just that I notice the single menu item moves up after it’s been clicked, so either while it has focus or active or visited. However since the page immediately refreshes, I can’t really get a good look at what’s happening. The changes seem permanent, which makes me suspect :visited.
You have
#sidebar_2 a:link { color: #333; text-decoration: none; padding:0;margin:0;}
#sidebar_2 a:visited { color: #333; text-decoration: none;padding:0;margin:0;}
You’ve got more CSS than necessary: anchors are inlines and inlines don’t have default margin or padding. Also, there’s really no point in having an a:link set of styles and then an a:visited etc. Did you know you can style “a” by itself? All the other pseudo-classes inherit from that.
#sidebar_2 a {
padding: 0; /for certainty/
color: #333;
text decoration: none;
}
Now you only need
#sidebar_2 a:focus,
#sidebar_2 a:hover {
color: #00723e;
text-decoration: underline;
}
But, because I haven’t seen shifting like this in IE in a long, long time, I’m going to ask you to also try making the anchors blocks of some sort.
I wonder if making them some sort of block element will stabilise them enough in IE8 that there is no longer a space difference.
Well, first, do this:
give the li’s ugly background colours and see if you see any gaps in IE8. I’m curious if there are any. If there’s a gap between the colours then it’s likely a margin issue… if not, a padding (of someone) issue.
Anyway, if you don’t mind the whole row where the text is being clickable, you can add
display: block;
to your anchors.
Otherwise, if you want to keep it like you have now (only the text is clickable) then try float: left; (if you ever add a border or background to the menu, li’s or sidebar then you’ll also want to enclose your floats).
I suspect either making one declaration for regular and visited links, and/or making the links themselves some kind of block element (floats are a type of block) will make IE8 act like everyone else. No guarantees tho : )