Menu looks ugly?
Scroll down to see why.


This issue was fixed in Internet Explorer 7 beta 2.

CSS 2 was around since before IE 5, and position:absolute; has been used since Netscape 4. But position:fixed; ? No. Surely no-one will want that. position:fixed; positions elements exactly like position:absolute; but it doesn't move when you scroll. This would be the basis of menus and navigation bars, logos, slideshows, official notices. Whatever. It could do it. But Microsoft sees no reason why we should be allowed to use that.

What is the result? Endless scripts. They run timers that continually re-position an absolutely positioned element, dragging its contents around as they scroll. There are numerous problems associated with this. It has visible delays as it tries to keep up with the scrolling. It looks very untidy as a result. It also relies entirely on JavaScript to produce the effect. Virtually none of these cope with JavaScript being disabled, meaning that accessibility is compromised, especially in the case of it being a navigation bar.

What about using just CSS? Well, yes. Plenty of people have used a quick CSS check to make IE use absolute, and better browsers use fixed, but this also has drawbacks. In IE, the effect will, of course, look wrong. It relies on using one CSS failing to avoid another. What about browsers that implement one but not the other? What about when Microsoft eventually decide to fix one of them but not the other ... Oh, let's worry about that when it happens eh?

Either way, it still means including a load of extra HTML, CSS or JavaScript code, completely unnecessarily, when a single CSS declaration should work.

Demo: The link list should appear on the right of the page. When you scroll, it should remain in the same place relative to the browser window.

Workaround: Use the position:fixed; workaround with a large amount of extra HTML markup, CSS and JavaScript.

Don't click this link unless you want to be banned from our site.