Selectors & Inheritance
| Type | Example | Description | IE6 | IE7 | IE8 |
| Child Selectors |
body>p { |
No | Yes | Yes | |
|
Chained Classes |
.class1.class2.class3 { |
<div class="class1 class2 class3"> |
No | Yes | Yes |
|
Attribute Selectors |
a[href] { |
No | Yes | Yes | |
|
Adjacent Sibling Selectors |
h1+p { |
<h1>heading</h1> |
No | Yes | Yes |
|
General Sibling Selectors |
h1~p { |
No | Yes | Yes |
Pseudo-Classes and Pseudo-Elements
| Type | Example | Description | IE6 | IE7 | IE8 |
|
Descendant Selector After :hover Pseudo-Class |
a:hover span { |
No | Yes | Yes | |
|
Chained Pseudo-Classes |
a:first-child:hover { |
No | Yes | Yes | |
|
:hover on Non-Anchor Elements |
div:hover { |
No | Yes | Yes | |
|
:first-child Pseudo-Class |
div li:first-child { |
No | Yes | Yes | |
|
:focus Pseudo-Class |
a:focus { |
No | No | Yes | |
|
:before and :after Pseudo-Elements |
#box:before { #box:after { |
No | No | Yes |
Property Support
| Type | Example | Description | IE6 | IE7 | IE8 |
|
Virtual Dimensions Determined by Position |
#box { |
No | Yes | Yes | |
|
Min-Height & Min-Width |
#box { |
No | Yes | Yes | |
|
Max-Height & Max-Width |
#box { |
No | Yes | Yes | |
|
Transparent Border Color |
#box { |
No | Yes | Yes | |
|
Fixed-Position Elements |
#box { |
No | Yes | Yes | |
|
Fixed-Position Background Relative to Viewport |
#box { |
No | Yes | Yes | |
|
Property Value “inherit” |
#box { |
No | No | Yes | |
|
Border Spacing on Table Cells |
table td { |
No | No | Yes | |
|
Rendering of Empty Cells in Tables |
table { |
No | No | Yes | |
|
Vertical Position of a Table Caption |
table { |
No | No | Yes | |
|
Clipping Regions |
#box { |
No | No | Yes | |
|
Orphaned and Widowed Text in Printed Pages |
p { p { |
No | No | Yes | |
|
Page Breaks Inside Boxes |
#box { |
No | No | Yes | |
|
Outline Properties |
#box { |
No | No | Yes | |
|
Alternative Values for the Display Property |
#box { |
No | No | Yes | |
|
Handling of Collapsible Whitespace |
p { div { |
No | No | Yes |
Other Miscellaneous Techniques
| Type | Example | Description | IE6 | IE7 | IE8 |
|
Media Types for @import |
@import url("styles.css") screen; |
No | No | Yes | |
|
Incrementing of Counter Values |
h2 {
h2:before { |
No | No | Yes | |
|
Quote Characters for Generated Content |
q { q:before {
q:after { |
No | No | Yes |
You might be interested in :
- One Page Website Design New to the internet world? Let The SCube help...
- Wordpress Post Body Content Not Displaying Having problem loading wordpress page or post content? Deactivation...
- Chrome Background Colour / Image not showing? You have designed amazing Website site and tested it...
- What font is being used? If you are like us at thescube, you might...
- Windows Live Mail (WLM) – minimized to system tray Wondering how to minimize windows live mail to system...




I run everything I do through a few different sites: IENetRender, Adobe’s browserlab (which I just discovered a short while ago), etc. For the really big stuff, I’ll order up a couple dozen shots at browsershots (no idea if this site moderates comments with multiple links in them, so just google if you’re not familiar with those).
The biggest pain in the ass is conflicts that only primitive versions of IE can’t seem to figure out — such as when it refuses to load a page altogether and gives an error message. And sometimes it’s not even IE — someone I know had his security settings in Windows jacked so high that a Firefox browser in XP interpreted an external javascript loading from jquery as an XSS vulnerability and bailed when loading the page. This was just a test page and I planned to change that anyway, but still, you never know…
After fleshing out a site in Firefox, I aim for:
1. Perfection in IEv.8.
2. Good in IEv.7.
3. Acceptable Functionality in IEv.6.
I used to be in one of those workplaces that chained every computer to an antiquated browser, so I know what it’s like. And I also know what my reaction was: “This piece of crap browser isn’t rendering the page correctly, but at least I can read it.” I had no expectation of perfect rendering.
Some users may be less sophisticated than that, but unless your business client is tailored specifically to a b2b purchase (for instance, selling services to large corporations), the perfect in this case is very much the enemy of the good.
Just to clarify a few things regarding :hover and inline-block:
IE6 does not support :hover on any element except the “a” tag. The article does not say that IE6 lacks support for :hover on “a”. It says that it does not support :hover as the preliminary element in a descendant selector. See my previous comment for an example link that demonstrates this.
Regarding inline-block, since IE6 and IE7 do not fully support inline-block, I left them as non-supportive in the chart. In other words, for the purposes of this article, I was not going into details on “partial” support, so that particular item could have gone either way, however, since the other “display” values are not supported at all, then it is safe to say that IE6 and 7 do not support “alternative” values for “display”.
But thanks for the input. Maybe after we receive more comments on this article, we’ll add a few notes to clarify a few items further.
Concerning IETester, I for myself had to come to the conclusion that it does NOT render pages as it should.
For example if you compare a page in IE6/IETester and a native running IE6 (in Fusion oder VirtualBox) you might notice differences in rendering (espcially when dealing with png).
If you really need a page to be “IE6-compliant” there is no other way than to actually test it on a native IE6.
IETester is a quick and good tool for ironing out the biggest displaying bugs. If it just wouldn’t crash that often
Great article, nice to have all of this info in one place. I agree with Sandstream, the problem is large companies/organisations who cannot upgrade from IE6, has anyone forced Google Chrome Frame on them yet?
Basically, IE6 is crap… nice article though.
Great resource to cross reference CSS properties
Great reference for checking your CSS properties across IE