Microsoft has thoughtfully allowed site owners to automatically tell IE8 browsers to render in “compatibility mode”. They stress that this is supposed to be a temporary solution, but it’s really easy. Two routes:
1. Send a header. Here’s the line for the Apache configuration, if you have mod_headers loaded:
# CMC 3/20/08 Tell IE8 to render in compatibility mode - TEMPORARY
Header set X-UA-Compatible "IE=EmulateIE7"
More information here: http://msdn.microsoft.com/en-us/library/cc817573.aspx
2. Put a meta tag at the top of appropriate pages:
On a per-page basis, add a special HTML tag to each document, right after the title tag (and before any other tags following title):
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
More information here: http://msdn.microsoft.com/en-us/library/cc817570.aspx.
Why this is good
It is a kinder, gentler Microsoft. This is actually a reasonable solution which doesn’t leave legacy messes. I.e., make your browser standards-compliant (not claiming that IE8 is in fact standards-compliant, but imagine with me for a moment…), let individual sites opt-out, but other developers can still develop to standards-compliance.
Versus, if you make your browser non-standards-compliant and then end up with legions of coders needing to code for your browser alongside the other 15 versions of browsers and have to maintain that forever when end-users don’t upgrade their browser.
That is, you put the control in the hands of the people who care (site owners), rather than in the hands of those who can’t be bothered or who really shouldn’t need to be technical enough to care about browser differences, rendering, etc.