|
Hello everyone,
I finally had to stop and do some research into this strange little creature, "Compatibility Mode" for Microsoft Internet Explorer 8. For many people, it is hard to figure out it's actual purpose. The reason for this Microsoft creation, is simply to allow users to change what rendering engine, or view style they are using. Now there are great technical reasons why this is useful, however, this added flexibility also added complexity. The problem with the "Compatibility Mode" is, it has only served to confuse the users. Luckily, there are ways to fix this for your users.
Rendering Modes
Internet Explorer 8 determines the rendering mode based on the two main factors, value of compatibility mode and value of the !DOCTYPE switch.
Webpage can specify compatibility mode either by using a Meta tag or by sending a http header. Meta tag takes precedence over http header when both are present.
-
META Tag - You can place the following HTML tag in the HEAD element of your web page:
<meta http-equiv=“X-UA-Compatible” content=“IE=7” />
-
HTTP Header - You can configure your server so that the following HTTP Header is sent with each page
X-UA-Compatible: IE=7
Note: The meta tag should be placed in the head section before any script or CSS.
The following table illustrates the possible values for specifying the compatibility mode.
Table 1: Compatibility Mode Values
|
Common Name
|
Compatibility Mode Value
|
Description
|
|
Quirks*
|
IE=5
|
IE 5.5 (Quirks) rendering mode
|
|
IE 7 Standards*
|
IE=7
|
IE 7 standards rendering mode
|
|
IE 7 Emulation
|
IE=EmulateIE7
|
IE 7 standards or Quirks rendering, depending on DOCTYPE
|
|
IE 8 Standards*
|
IE=8
|
IE 8 standards rendering mode
|
|
IE 8 Emulation
|
IE=EmulateIE8
|
IE 8 standards or Quirks rendering, depending on DOCTYPE
|
|
Latest Mode*
|
IE=edge
|
Always use the latest standards rendering mode
|
* These Compatibility Modes do not depend on the DOCTYPE in determining the rendering mode to use.
Original Source: http://blogs.msdn.com/b/askie/archive/2009/03/23/understanding-compatibility-modes-in-internet-explorer-8.aspx
You can also specify multiple modes and highest known mode will be used
<meta http-equiv=“X-UA-Compatible” content=“IE=7; IE=8” />
The following table summarizes the rendering modes. Compatibility Mode Value is the value you set using either meta tag or by sending a http header.
Table 2: Compatibility Mode Values
* For Intranet pages, 7 (IE 7 Standards) rendering mode is used by default and can be changed
Original Source: http://blogs.msdn.com/b/askie/archive/2009/03/23/understanding-compatibility-modes-in-internet-explorer-8.aspx
Compatibility Lists (“Emulate IE7” mode)
A Compatibility List lists all sites (domains) that it should display using Internet Explorer 7 Emulation mode (aka “Emulate IE7” mode). Internet Explorer 8 maintains two Compatibility Lists.
-
Compatibility View List (user defined)
-
Microsoft Maintained Site Compatibility List (Microsoft maintained)
Emulate IE7 mode causes IE8 to do three things:
-
Use IE 7 Standards mode for standards mode document
-
Send the IE7 User agent string
-
Sets the right internal parameters to process conditional comments as IE 7 would.
While I believe Microsoft had good intentions in giving the user a choice when a page is rendered incorrectly, most users don't know what compatibility mode is. They tend to assume there is something wrong with the site (sometimes there is), and either leave the page, or if you are lucky they will inform you. Red Black Tree's developers recommend that the compatibility mode of IE8 be disabled and that the default rendering mode for IE8, should be IE8. Conditional CSS should be used to give the proper look to each page, for each browser, version, and rendering where necessary.
|