Internet Explorer 7 CSS support information available
Thursday, March 30th, 2006
I have now finished testing the CSS 2.1 and CSS 3 support in Internet Explorer 7. The results are more significant than the previously reported HTML support improvements. CSS was the primary area of layout engine development in Internet Explorer 7, so this is where most of the layout engine changes reside.
Here are the major changes in Internet Explorer 7 as far as CSS 2.1 and CSS 3 support:
- !importantis now properly supported.
- Much better support for selectors, including universal selectors, child selectors, adjacent sibling selectors, CSS 3 indirect adjacent sibling selectors, and all attribute selectors in CSS 2.1 and CSS 3. This is better support than Opera 8.5, although still behind Firefox 1.5 in some areas.
- More correct pseudo-class and pseudo-element grammar implementation.
- :first-childis now supported.
- :hoveris now supported for all elements, although not perfectly.
- Backgrounds now correctly include border region.
- dottedborder style is now properly supported for one-pixel-wide borders.
- bottomand- rightcan now be used to stretch the box’s dimensions.
- Some floatbugs were fixed.
- Box sizes are now properly constrained by the heightandwidthproperties.
- Several marginbugs have been fixed.
- max-height,- max-width,- min-height, and- min-widthare now mostly supported.
- overflowis now correctly supported.
- position:fixedis now supported.
- z-indexproperty now behaves correctly with- selectelements.
Here are some things I was disappointed about:
- It still doesn’t support combined class selectors like p.foo.bar{}and still has other bugs with class and ID selectors.
- :hoverhas some bugs that cause the hover state to sometimes remain even after the mouse has moved away.
- :beforeand- :afterstill aren’t supported, meaning counters,- content, and- quotesalso aren’t supported.
- inherit(one of the fundamental features of CSS) still isn’t supported.
- Borders still aren’t supported for table row groups.
- border-spacing,- caption-side, and- empty-cellsstill aren’t supported.
- There was a nasty regression regarding the clearproperty that prevents elements from clearing floats under certain conditions.
- clipstill isn’t supported.
- There were no improvements to the displayproperty, meaning CSS table displays still aren’t supported.
- Some marginbugs remain.
- outlinestill isn’t supported.
- There are still a lot of problems with the vertical-alignproperty.
- There were no improvements to the print properties.
- Alternate stylesheets still aren’t supported (a requirement for CSS conformance).
- There is still no option to disable author stylesheets (another requirement for CSS conformance).
- Other than basic selectors, there were no improvements to CSS 3 support. There is still no support for any CSS 3 pseudo-classes or pseudo-elements.
A lot of painful problems were fixed, but Internet Explorer is still miles behind the competition in CSS support. According to the Web Devout tables, Internet Explorer 7’s CSS 2.1 support has risen from 54% to 65%, compared to Firefox 1.5’s 93% and Opera 8.5’s 94%. Due to the added CSS 3 selector support, overall support for CSS 3 changes has risen from 7% to 13%, compared to Firefox 1.5’s 28% and Opera 8.5’s 8%.
The lack of support for inherit, :before and :after pseudo-elements, and table display values will continue to be thorns in the sides of web developers. Hopefully these problems will be fixed in Internet Explorer 8, which is planned for release within one year of the Internet Explorer 7 release.
I will test DOM support improvements next, although I haven’t heard of any changes in that area.
Edit: As a reminder, Microsoft has previously announced that the latest build of Internet Explorer 7 is layout complete, meaning no significant changes will be made to the webpage layout engine until the final release.