Smashing Magazine - we smash you with the information that will make your life easier. really.
CSS Differences in Internet Explorer 6, 7 and 8
One of the most bizarre statistical facts in relation to browser use has to be the virtual widespread numbers that currently exist in the use of Internet Explorer versions 6, 7 and 8. As of this writing, Internet Explorer holds about a 65% market share combined across all their currently used browsers. In the web development community, this number is much lower, showing about a 40% share.

The interesting part of those statistics is that the numbers across IE6, IE7, and IE8 are very close, preventing a single Microsoft browser from dominating browser stats — contrary to what has been the trend in the past. Due to these unfortunate statistics, it is imperative that developers do thorough testing in all currently-used Internet Explorer browsers when working on websites for clients, and on personal projects that target a broader audience.
Thanks to the many available JavaScript libraries, JavaScript testing across different browsers has become as close to perfect as the current situation will allow. But this is not true in CSS development, particularly in relation to the three currently used versions of Internet Explorer.
This article will attempt to provide an exhaustive, easy-to-use reference for developers desiring to know the differences in CSS support for IE6, IE7 and IE8. This reference contains brief descriptions and compatibility for:
- Any item that is supported by one of the three browser versions, but not the other two
- Any item that is supported by two of the three browser versions, but not the other one
This article does not discuss:
- Any item that is not supported by any of the three browser versions
- Proprietary or vendor-specific CSS
Therefore, the focus is on differences in the three, not necessarily lack of support. The list is divided into five sections:
- Selectors & Inheritance
- Pseudo-Classes and Pseudo-Elements
- Property Support
- Other Miscellaneous Techniques
- Significant Bugs and Incompatibilities
Selectors & Inheritance
Child Selectors
Example
body>p {
color: #fff;
}
Description
The child selector selects all elements that are immediate children of a specified parent element. In the example above, body is the parent, and p is the child.
Support
Bugs
In IE7, the child selector will not work if there is an HTML comment between the parent item and the child.
Chained Classes
Example
.class1.class2.class3 {
background: #fff;
}
Description
Chained classes are used when the same HTML element has multiple classes declared, like this:
<div class="class1 class2 class3"> <p>Content here.</p> </div>
Support
Bugs
IE6 appears to support this property, because it matches the last class in the chain to an element having that class, however, it does not restrict the class to an element that has all the classes in the chain, like it should.
Attribute Selectors
Example
a[href] {
color: #0f0;
}
Description
This selector allows an element to be targeted only if it has the specified attribute. In the example above, all anchor tags that have href attributes would qualify, but not anchor tags that did not have href attributes.
Support
Adjacent Sibling Selectors
Example
h1+p {
color: #f00;
}
Description
This selector targets siblings that are adjacent to the specified element. The example above would target all paragraph tags that are siblings of, and come directly after, primary heading tags. For example:
<h1>heading</h1> <p>Content here.</p> <p>Content here.</p>
In the code above, the CSS styles specified would target only the first paragraph, because it is a sibling to the <h1> tag and is adjacent. The second paragraph is a sibling, but is not adjacent.
Support
Bugs
In IE7, the adjacent sibling selector will not work if there is an HTML comment between the siblings.
General Sibling Selectors
Example
h1~p {
color: #f00;
}
Description
This selector targets all siblings that appear after a specified element. Applying this selector to the HTML example given in the previous section will select both paragraph tags, however, if one of the paragraphs appeared before the heading, that paragraph would not be targeted.
Support
Pseudo-Classes and Pseudo-Elements
Descendant Selector After :hover Pseudo-Class
Example
a:hover span {
color: #0f0;
}
Description
An element can be targeted with a selector after a :hover pseudo class, similar to how any descendant selector works. The above example would change the font color inside all <span> elements inside of anchor elements while the anchor is hovered over.
Support
Chained Pseudo-Classes
Example
a:first-child:hover {
color: #0f0;
}
Description
Pseudo-classes can be chained to narrow element selection. The above example would target every anchor tag that is the first child of its parent and apply a hover class to it.
Support
:hover on Non-Anchor Elements
Example
div:hover {
color: #f00;
}
Description
The :hover pseudo-class can apply a hover, or rollover state, to any element, not just anchor tags.
Support
:first-child Pseudo-Class
Example
div li:first-child {
background: blue;
}
Description
This pseudo-class targets each specified element that is the first child of its parent.
Support
Bugs
In IE7, the first-child pseudo-class will not work if an HTML comment appears before the targeted first child element.
:focus Pseudo-Class
Example
a:focus {
border: solid 1px red;
}
Description
This pseudo-class targets any element that has keyboard focus.
Support
:before and :after Pseudo-Elements
Example
#box:before {
content: "This text is before the box";
}
#box:after {
content: "This text is after the box";
}
Description
This pseudo-element places generated content before or after the specified element, used in conjunction with the content property.
Support
Property Support
Virtual Dimensions Determined by Position
Example
#box {
position: absolute;
top: 0;
right: 100px;
left: 0;
bottom: 200px;
background: blue;
}
Description
Specifying top, right, bottom, and left values for an absolutely positioned element will give the element “virtual” dimensions (width and height), even if width and height are not specified.
Support
Min-Height & Min-Width
Example
#box {
min-height: 500px;
min-width: 300px;
}
Description
These properties specify minimum values for either height or width, allowing a box to be larger, but not smaller, than the specified minimum values. They can be used together or individually.
Support
Max-Height & Max-Width
Example
#box {
max-height: 500px;
max-width: 300px;
}
Description
These properties specify maximum values for either height or width, allowing a box to be smaller, but not larger, than the specified minimum values. They can be used together or individually.
Support
Transparent Border Color
Example
#box {
border: solid 1px transparent;
}
Description
A transparent border color allows a border to occupy the same space as would be occupied if the border was visible, or opaque.
Support
Fixed-Position Elements
Example
#box {
position: fixed;
}
Description
This value for the position property allows an element to be positioned absolutely relative to the viewport.
Support
Fixed-Position Background Relative to Viewport
Example
#box {
background-image: url(images/bg.jpg);
background-position: 0 0;
background-attachment: fixed;
}
Description
A fixed value for the background-attachment property allows a background image to be positioned absolutely relative to the viewport.
Support
Bugs
IE6 incorrectly fixes the background image in relation to the containing parent of the element that has the background set, therefore this value only works in IE6 when its used on the root element.
Property Value “inherit”
Example
#box {
display: inherit;
}
Description
Applying the value inherit to a property allows an element to inherit the computed value for that property from its containing element.
Support
Bugs
IE6 and IE7 do not support the value inherit except when applied to the direction and visibility properties.
Border Spacing on Table Cells
Example
table td {
border-spacing: 3px;
}
Description
This property sets the spacing between the borders of adjacent table cells.
Support
Rendering of Empty Cells in Tables
Example
table {
empty-cells: show;
}
Description
This property, which only applies to elements that have their display property set to table-cell, allows empty cells to be rendered with their borders and backgrounds, or else hidden.
Support
Vertical Position of a Table Caption
Example
table {
caption-side: bottom;
}
Description
This property allows a table caption to appear at the bottom of a table, instead of at the top, which is the default.
Support
Clipping Regions
Example
#box {
clip: rect(20px, 300px, 200px, 100px)
}
Description
This property specifies an area of a box that is visible, making the rest “clipped”, or invisible.
Support
Bugs
Interestingly, this property works in IE6 and IE7 if the deprecated comma-less syntax is used (i.e. whitespace between the clipping values instead of commas)
Orphaned and Widowed Text in Printed Pages
Example
p {
orphans: 4;
}
p {
widows: 4;
}
Description
The orphans property specifies the minimum number of lines to display at the bottom of a printed page. The widows property specifies the minimum number of lines to display at the top of a printed page.
Support
Page Breaks Inside Boxes
Example
#box {
page-break-inside: avoid;
}
Description
This property specifies whether a page break should occur inside of a specified element or not.
Support
Outline Properties
Example
#box {
outline: solid 1px red;
}
Description
outline is the shorthand property that encompasses outline-style, outline-width, and outline-color. This property is preferable to the border property since it does not affect document flow, thus better aiding debugging of layout issues.
Support
Alternative Values for the Display Property
Example
#box {
display: inline-block;
}
Description
The display property is usually set to block, inline, or none. Alternative values include:
inline-blockinline-tablelist-itemrun-intabletable-captiontable-celltable-columntable-column-grouptable-footer-grouptable-header-grouptable-rowtable-row-group
Support
Handling of Collapsible Whitespace
Example
p {
white-space: pre-line;
}
div {
white-space: pre-wrap;
}
Description
The pre-line value for the white-space property specifies that multiple whitespace elements collapse into a single space, while allowing explicitly set line breaks. The pre-wrap value for the white-space property specifies that multiple whitespace elements do not collapse into a single space, while allowing explicitly set line breaks.
Support
Other Miscellaneous Techniques
Media Types for @import
Example
@import url("styles.css") screen;
Description
A media type for an imported style sheet is declared after the location of the style sheet, as in the example above. In this example, the media type is "screen".
Support
Bugs
Although IE6 and IE7 support @import, they fail when a media type is specified, causing the entire @import rule to be ignored.
Incrementing of Counter Values
Example
h2 {
counter-increment: headers;
}
h2:before {
content: counter(headers) ". ";
}
Description
This CSS technique allows auto-incrementing numbers to appear before specified elements, and is used in conjunction with the before pseudo-element.
Support
Quote Characters for Generated Content
Example
q {
quotes: "'" "'";
}
q:before {
content: open-quote;
}
q:after {
content: close-quote;
}
Description
Specifies the quote characters to use for generated content applied to the q (quotation) tag.
Support
Significant Bugs and Incompatibilities
Following is a brief description of various bugs that occur in IE6 and IE7 that are not described or alluded to above. This list does not include items that lack support in all three browsers.
IE6 Bugs
- Doesn't support styling of the
<abbr>element - Doesn't support classes and IDs that begin with a hyphen or underscore
<select>elements always appear at the top of the stack, unaffected byz-indexvalues:hoverpseudo-class values are ignored if anchor pseudo-classes are not in the correct order (:link,:visited,:hover)- An
!importantdeclaration on a property is overridden by a 2nd declaration of the same property in the same rule set that doesn't use!important heightbehaves likemin-heightwidthbehaves likemin-width- Left and right margins are doubled on floated elements that touch their parents' side edges
- Dotted borders appear identical to dashed borders
line-throughvalue fortext-decorationproperty appears higher on the text than on other browsers- List items for an ordered list that have a layout will not increment their numbers, leaving all list items preceded by the number "1"
- List items don't support all possible values for
list-style-type - List items with a specified
list-style-imagewill not display the image if they are floated - Offers only partial support for
@font-face - Some selectors will wrongly match comments and the doctype declaration
- If an ID selector combined with a class selector is unmatched, the same ID selector combined with different class selectors will also be treated as unmatched
IE7 Bugs
- List items for an ordered list that have a layout will not increment their numbers, leaving all list items preceded by the number "1"
- List items don't support all possible values for
list-style-type - List items with a specified
list-style-imagewill not display the image if they are floated - Offers only partial support for
@font-face - Some selectors will wrongly match comments and the doctype declaration
Some IE bugs not mentioned here occur only under particular circumstances, and are not specific to one particular CSS property or value. See the references below for some of those additional issues.
[By the way, did you know we have a brand new free Smashing Email Newsletter? Subscribe now and get fresh short tips and tricks on Tuesdays!]
Further Resources
- Details of Changes in Internet Explorer 8
- CSS Compatibility for Internet Explorer (MSDN)
- CSS Improvements in Internet Explorer 8 (MSDN)
- Internet Explorer Exposed - CSS Bugs @ Position Is Everything
- SitePoint CSS Reference
- CSS Contents and Browser Compatibility
- 10 Useful CSS Properties Not Supported By Internet Explorer
Louis Lazaris is freelance web developer based in Toronto, Canada. He runs Impressive Webs, and the recently-launched Interviews by Design that publishes interviews with talented designers. You can follow Louis on Twitter or contact him through his website.
- 241 Comments
- 1
- 2
November 12th, 2009 7:07 amActually, IE6 is awesome… if you compare it to the inconsistencies is its predecessors. If you think IE6 is crap, you should have tried developing in the late 90s.
This IE6 is crap argument really annoys me. Yes, it’s not as good as the newer browsers, but that’s no reason to not even bother with it. What is most important about your website? You or your users? It should be the users – and if they happen to be stuck with IE6, are you just going to slap them around the face and tell them to go away? Is that good service?
- 3
December 22nd, 2009 8:12 pmClinton, you are certainly right. In 90’s IE6 was our favorite browser. It was much better and reliable than Netscape. But we all grow… And I don’t see anyone visiting my site with IE6 anymore.
- 3
- 2
- 4
October 14th, 2009 3:15 amGreat article.
Especially good to know which features IE7 and 8 support. IE6’s bugs/lack of features are usually very well known by web developers, but IE7 and IE8 have slipped under the radar a bit. Now that a lot of projects are dropping testing for IE6, we need to focus on the new baseline: IE7.
- 5
October 14th, 2009 3:20 amUse Dean Edwards’ IE7/8.js and you can make a lot of these incompatibilities go away.
- 6
October 14th, 2009 3:24 amGreat article!!
- 7
October 14th, 2009 3:25 amWould be great if solution is also provided..and expecting css differences between ie and firefox.
- 8
October 14th, 2009 3:29 amThanks, great article. Luckily, IE6 is dying.
According to w3schools statistics 12% use IE6 and decreasing every month.
I personally use Stop IE6 widgets now and I feel FREE!! - 9
October 14th, 2009 3:40 am2nd THAT! Markus.. fantastic article
btw IE6 is crap =]
- 10
October 14th, 2009 3:45 amVery useful article. Thank you, Louis.
- 11
October 14th, 2009 3:46 am@Irene: The problem is that not everyone has the option of upgrading their browser. When I’m at work, it’s kind of annoying to see messages saying “hey dummy, upgrade your browser!” when I have no control over what’s installed.
Anyway, thanks Louis, that’s a useful article.
- 12
October 14th, 2009 3:48 amThe problem with IE 6 is that some large companies still use it and their users cannot upgrade. I always test my work in IE6 because they are a big piece of my customers.
EDIT: Riccardo is a perfetc example of what I mean,
- 13
October 14th, 2009 3:52 amanother awesome post ?
- 14
October 14th, 2009 3:53 amVery useful for the UI guys.. Thanks a lot.
- 15
October 14th, 2009 3:54 amFantastic article, much appreciated.
- 16
October 14th, 2009 3:55 amVery nice article. Just like to add a couple of tricks I use on a regular basis to ease the pain of cross-IE support:
#1 Develop with Firefox then fix IE rendering ;-)
#2 Use IEtester to visualize rendition across the different versions of IE
#3 Use the adequate meta to force IE8 in standard compliant mode
#4 Use alternative CSS using conditional comments (http://msdn.microsoft.com/en-us/library/ms537512%28VS.85%29.aspx)Hope this helps
- 17
October 14th, 2009 4:00 amReally useful – helped me with something I was just working on! Cheers
- 18
October 14th, 2009 4:01 amGreat 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?
- 19

- 20
October 14th, 2009 4:05 amThank god IE6 is dying! It was the biggest misstake Microsoft ever made. Developers Designers had to do all sorts of weird workarounds, just to get the design equal in all browsers.
- 21
October 14th, 2009 4:08 amWow, IE6 doesn’t support anything, what a surprise. Only Microsoft can screw multiple browsers up.
- 22
October 14th, 2009 4:13 amEXCELLENT! merci! thank you! gracias! o brigado! nice article.
- 23
October 14th, 2009 4:21 amit is imperative that developers do thorough testing in all standards compliant browsers
There I corrected that for you. I didn’t read any further, because unless we get standards IN our way there is no point in grieving about IE and its crappiness.
- 24
October 14th, 2009 4:23 amFor having chained classes in IE6, try reversing the order of classes.
.class2.class1 {…}
- 25
October 14th, 2009 4:29 am@housetier:
Try telling your client that you’re only going to test their website in standards compliant browsers! :)
@daniel:
I’ll have to check to make sure, but I don’t think that will work. The purpose of chained classes is to apply styles to an element that has ALL the classes in the chain, not just the first or last class, which is what IE6 does.
- 26
October 14th, 2009 4:34 amGreat article! I must admit I’ve never used orphans and widows, but then my work doesn’t usually require sites to be printable.
You mentioned that IE7 doesn’t support inline-block, but that’s not entirely true. There is a bug that means it doesn’t support inline-block on an element with a default value of ‘block’, but those elements that have a default of ‘inline’ – such as span, href, img etc. – will accept the inline-block value instead…
Oh, and may I join everyone else in berating Microsoft for Internet Explorer in general. It’s truly the worst. Even IE8 has more unacceptable bugs than I could fit in this comment.
- 27
October 14th, 2009 4:35 amThis differences will excist the next 5 years, because Microsoft is going to support the Internet Explorer 6 until 2014.
By the way, nice CSS-Overview!
- 28
October 14th, 2009 4:41 amTo sum up this article, IE 6 sucks and no body should still be using it.
Otherwise great article :)
- 29
October 14th, 2009 4:42 amHey, whaddaya know… IE7 is pants too. Ooh, and IE8.
- 30
October 14th, 2009 4:47 amAdd all these differences in IE6 again and Microsoft should automatically update IE6 to IE8… no need to ask end users …
Good to know the differences … good article…
- 31
October 14th, 2009 4:47 amnice!!!
- 32
October 14th, 2009 5:09 am@Rob W is correct, IE7 and even IE6 have partial support for inline-block
- 33
October 14th, 2009 5:10 amI think people forget that it was IE6 that allowed us to move over to CSS-based layouts in the first place. It fixed IE’s broken box model, and really opened the door to standards. Yes it has ALOT of problems now, but that is because it is old. It did good things for the industry when it came out, and I think that we should remember that. I would love for everybody to upgrade tomorrow, but that said I also understand that the users that can’t or don’t upgrade just want their sites to work and could care less about us tech geeks moaning about old software.
- 34
October 14th, 2009 5:16 am@Jason Zipperer:
You’re absolutely right. In fact, if you read Jeffrey Zeldman’s 1st version of Designing with Web Standards (published in 2003), you’ll see that he constantly refers to IE6 as the most standards-compliant browser on the market.
- 35
October 14th, 2009 5:16 amThe moral of the story here is to use simple styles so that your sites don’t break in IE6.
- 36
October 14th, 2009 5:24 amOne of the best ever articles from you guys! Great job!
- 37
October 14th, 2009 5:25 amThis is a very helpful article, thank you!!!
- 38
October 14th, 2009 5:28 amIMO @Andrew, the moral is to only use CSS 2.1 selectors for progressive enhancement, and never for things that will make the site unusable for people using IE6.
Examples: to change the color, add a background, etc.
We should not motivate any webdesigner or front-end-developer to *not* use these. Styling a website’s markup is as much about looking back on IE6 (and before) as it is about preparing it for the future.
- 39
October 14th, 2009 5:30 amIE 6 sux!
very helpful this article! thanks
Sinceramente quando o cliente fala que o site está ‘quebrado’ eu já penso logo porcaria de IE6…
- 40
October 14th, 2009 5:39 ambig thank for this info.
- 41
October 14th, 2009 5:44 amStrange a:hover descendant selector worked always for me in IE6. It’s partially used to create dropdown menus, for example see cssmenus.co.uk.
- 42
October 14th, 2009 5:45 amThanks! Great article.
- 43
October 14th, 2009 5:48 amNot really any useful information there. Basically, every single item is IE6 = NO, IE8 = YES, so you need to plan for not working… How is that different from the way we’ve been developing since IE6 first came out?
- 44
October 14th, 2009 5:49 am…and those are just the css issues; try setting an input id with the same name as another input’s name attribute
- 45
October 14th, 2009 5:54 amGreat article, very useful for a current initiative. It would be great to see FireFox 3.5 added to these comparisons.
- 46
October 14th, 2009 5:55 amNice post… and when IE 9 arrives make an article about all 4 crap browsers and their incompatibilities.
It is very sad for such articles to even exist and the worst part is that we (web developers) have to read it either we like it or not.
- 47
October 14th, 2009 5:55 amGood article but I’ve never had a problem with a:hover span in IE6 before. Sadly makes me doubt the other items listed. For anyone who doesn’t know of it, check out Quirksmode
- 48
October 14th, 2009 6:03 amVery good article for reference. Thanks!
I am finding with the clients that I work with, IE6 is becoming less of an issue because their end-users are mostly using 7 and 8. Although 6 will still be around for awhile, at some point we need to cut the strings like we have done with IE5.
- 49
October 14th, 2009 6:04 amWhen my boss or a client insists I’ll make the site perfect in IE6, usually I just fix the big errors.
When they tell me IE6 can go f itself, I do a little victory dance.
- 50
October 14th, 2009 6:06 amFar quicker just to pop
@;/*in your code, hey presto no more IE6 visitors….
- 51
October 14th, 2009 6:09 amVery good article as usually!
Let me add for the IE6 Bugs:
# Left and right margins are doubled on floated elements that touch their parents’ side edges
- this is fixed by adding display:inline;
# Dotted borders appear identical to dashed borders
- this is fixed by using a 2px border: border: 2px dotted #000; - 52
October 14th, 2009 6:25 amIt’s about time!
- 53
October 14th, 2009 6:27 amThis is one of the most useful articles I’ve ever seen from Smashing. I’ve been looking for a comprehensive list like this forever.
- 54
October 14th, 2009 6:29 amthis definetly shows how bad ie6 is… good overview
- 55
October 14th, 2009 6:29 am“a:hover span” works in IE6 if set rules for “a, a span”
- 56
October 14th, 2009 6:32 amConcerning 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 ;-)
- 57
October 14th, 2009 6:37 amIE6 is not a bad browser, haha…. It’s a great post.
Thanks to share it! - 58
October 14th, 2009 6:39 amRob: “hey presto no more IE6 visitors…”
If you’re creating a commercial site, there’s no way you would want to limit your audience like that.
Generally, I’ll code in Firefox and make sure it works in IE8 and Opera. I’ll then see how well it’s working in IE7 and IE6, and tweak to make the site functional as required. I’m ok with the site not looking as nice under IE6, but I’ll make sure it can still be used.
- 59
October 14th, 2009 6:41 amDeath to IE 6!!! Thanks for this article, it’ll be useful to compare what’s supported, etc. I really hate IE 6. It’s 8 years old!
- 60
October 14th, 2009 7:01 amFor those who are saying that a descendant selector after a :hover pseudo-class works in IE6, I would like to see a working example of that. Here is an example link:
Visit the page above, and test the hover in IE6 and you’ll see it doesn’t work. Now, if there’s something I’m missing here, then I’d be happy to retract, but as far as I understand, hover does not work on any element in IE6 except directly on an anchor.
- 61
October 14th, 2009 7:04 amAll of you looking to reliably test across different IE versions should consider the Internet Explorer Application Compatibility VPC Image by Microsoft.
It contains Virtual PC compatible system images that allow you to perform tests in native IE environments version 6 SP3 and up. Images for IE7 & 8 are available in combination with both XP and Vista.
Virtual PC is available for free as well here.
Happy testing :).
- 62
October 14th, 2009 7:06 amOnce businesses take a huge interest in upgrading to windows 7 then finally we can turn to IE6 and wave goodbye.
Personally I don’t write sites to support it.
NB – in my analytics of sites that are for business users to read – about 40% still using ie6 as they are dictated (or dont care) by the PC supplied in the office. - 63
October 14th, 2009 7:28 amGreat article! Thanks for the info!!
What I don’t understand is with all the updating that PCs do on a regular basis, why isn’t browser updating part of it? Why must it be put upon the user to manually ungrade? Firefox does it every time a new version comes out.
- 64
October 14th, 2009 7:31 amIE6… ditch it already…
- 65
October 14th, 2009 7:34 amWhat a great article! Keep it up Smashing…
- 66
October 14th, 2009 7:50 amI believe there is an error in this post – IE6 does support :hover on anchor elements. Further, display:inline-block does work only for inline elements (spans, etc. – not sure if it works on IE6, but I know for sure it works for IE7).
- 67
October 14th, 2009 7:54 amIsn’t IE 6 Dead Already? let me guess caveman still around…
big companies don’t upgrade because that’s how their old fart IT’s make money. - 68
October 14th, 2009 7:59 amI´m a student. This article will be very useful.
- 69
October 14th, 2009 8:03 amVery, very useful comparison. Thanks a bunch for pulling all this info together in one place.
- 70
October 14th, 2009 8:08 amWhat I don’t understand are these numbers and why the very so much:
http://marketshare.hitslink.com/browser-market-share.aspx?qprid=2
IE6: 24%
Compared with
http://www.w3schools.com/browsers/browsers_stats.asp
IE6: 12%That’s a huge difference in numbers, I hope the 12% figure is correct
- 71
October 14th, 2009 8:08 amGood article which hopefully will encourage use of the more advanced selectors. However lets not let Microsoft sit on their laurels with the launch of IE8, we should all be pushing for adoption of CSS3 and HTML5 so in a couple of years we’re not grumbling about IE’s lack of support for features already available in Firefox, Chrome & Safari etc such as box shadows, rounded corners, opacity etc
- 72
October 14th, 2009 8:24 amWell, since IE6 is still the baseline… looks like we can’t use anything in this post… ugh. Browser statistics show a nice steady drop of IE6 1 to 2 percent each month this year… let’s hope the trend continues. Another good post, but was sad to see “NO” in every single category for IE6. I agree with Zapix… these IT folks need to up their game, and quit building these companies systems around a browser that is obsolete… what are they thinking?
- 73
October 14th, 2009 8:24 amJust 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.
- 74
October 14th, 2009 8:25 amIt’s nice to have all CSS IE differences in one article. Great job!
- 75
October 14th, 2009 8:30 amIt is our duty to inform the public about IE6. Use IE6 NO MORE on your website and spend less time debugging.
My new method is to offer IE6 support as an optional feature for clients. If they want to save some hours of my time and save some money they can choose to use IE6 NO MORE.
(This hasn’t come up with any of clients yet because my sites tend to not have rendering issues.) - 76
October 14th, 2009 8:45 amHandy article. Just to correct a quick error, this does work in IE6:
a:hover span {
color: #0f0;
}It’s not mentioned above but IE8 (yes the new one) doesn’t support ‘border’ properly. So you have to use ‘outline’ instead.
Someone mentioned the browsers stats from W3C Schools, the issue there is that site only gets visits from developers, hence such a high figure for Firefox.
In the UK, IE6 is the major browser for Business to Business websites. One client stated that IE6 currently accounts for 70% of their traffic!
- 77
October 14th, 2009 8:47 amIE6 should banned from all PC :P
- 78
October 14th, 2009 9:06 amHaha – so basically IE6 cant do anything. I wish we could stick it in room 101!
- 79
October 14th, 2009 9:06 amFrom Sitepoint’s CSS reference:
“In Internet Explorer 5.5 and 6, this combinator [the "descendant" selector] doesn’t work after a :hover pseudo-class.”
Quoted from Descendant selector info on Sitepoint’s reference.
- 80
October 14th, 2009 9:13 amAny tips on the best way to manage multiple installations of IE if you design primarily on a single workstation? Must you use VMs?
- 81
October 14th, 2009 9:17 amwhy on earth are people still using IE6
- 82
October 14th, 2009 9:21 ami hate ie 6 . i dont know why ie 6 update as ie 7 as firefox
- 83
October 14th, 2009 9:39 amGreat post! I personaly stopped supporting ie6 but i do display a message on top of websites i do explaining why it would be 100% good to switch to a more modern browser.
- 84
October 14th, 2009 9:44 amWho cares if Microsoft are gonna support it until 4014 or whatever, doesn’t mean we have to. The more of us who stop supporting it the more users will be forced to upgrade.
I take the point about business to business websites/users but Microsoft is only supporting them because of Sharepoint and intranet nonsense. I blame the Sharepoint team/devision for prolonging this mess.
I believe that the IE team are trying to do good things and understand where the net is going (IE8 is a massive leap forward all considered) only to be forced to include such bizarreness as ‘Compatibility Mode’ due to the weight and corrupt bureaucracy of the Microsoft Business Unit so that Sharepoint doesn’t throw a fit.
(Deep breathe) and relax.
- 85
October 14th, 2009 9:47 amReading this article and seeing all the CSS selectors that IE 7 and 8 support makes me realize that I need to brush up on my CSS skills!
- 86
October 14th, 2009 10:07 amThis is a long list of reasons why IE6 should be banned!
Great post!
- 87
October 14th, 2009 10:13 am###########################################
I hope people here will see this: Clip works perfect on IE6.
Just need to use it without comas. (10 20 10 10)###############################################
- 88

- 89
October 14th, 2009 10:33 amPretty strong case that IE 6 Supports nada damn thing!! Good work!
- 90
October 14th, 2009 10:46 am@ John Faulds: RE: Dean Edwards’ IE7/8.js = AWESOME.
@ Sandstream: Yes, unfort. I have to aghee with you on this one. If we could get them (corp. and gov.) to upgrade atleast to ie7 it would make our lives easier.
@Vincent : is that Room101 a referance to the book 1984?…I am complete agreement about the IE6 needs dumped like the kleft overs in teh fridge for a month. IE6 for me is extra work = extra time = extra cost. I actually supported MS’s push of IE8 in the Windows automatic updates, no-one, NO-ONE, should have said a word and just let it go; esp. IT departments…
BTW, once again another great article from SM!
- 91
October 14th, 2009 10:47 amgreat article ;)
- 92
October 14th, 2009 10:52 amThanks for this reference, this is a good help when finish a project and need to go back to start hacking for IE6. Please lmk when IE6 is completely out of the market.
- 93
October 14th, 2009 10:53 amI don’t develop sites for IE6 for my freelance clients anymore. My company however must continue to support IE6.
A good old server-side IE6 sniffer giving a user the alternative to upgrade is the way to go.
- 94
October 14th, 2009 11:03 am@NeoSwf:
Thanks for mentioning that. Under “clipping regions” I mentioned that it works in IE7 with the wrong syntax (spaces), but that should also include IE6. I’ve sent a note to SM for a correction.
Everyone should keep in mind that using spaces for the clip property will make your CSS invalid, but will work cross-browser.
- 95
October 14th, 2009 11:07 amPer bluecherry’s comment above, IE Tester is unreliable. Get a copy of Microsoft Virtual PC & download the IE6, IE7, IE8 VPC images to test IE installations.
For everyone discussing IE6 & IE7 not fully supporting display : inline-block, neither does Firefox 2.. To have IE6/IE7 (for naturally inline elements), & FF2 work with the display : inline-block style you must do this:
a {
display : -moz-inline-box;
display : inline-block;
}
And to get IE6 to mimic :hover events on non anchor tags, you can always utilize a behavior file:
body {
behavior : url("path/to/your/behaviorFile.htc");
}
from within an IE6-specific conditional stylesheet:
- 96
October 14th, 2009 11:09 amYou could power every house on Earth for a few hours– just from the sheer RAGE MSIE elicits from Web Designers. :-)
Nice to see what does and doesn’t work. Thank you for doing the head bashing for us.
- 97
October 14th, 2009 11:20 amThanks for the article.
Why do people still use IE6? Well, in our organization, we’ve got 5,000 desktops that run a squillion mission critical apps that have to be tested with whatever new browser you want to use before you can switch over. Add several big name, huge dollar, apps that have issues in other browsers. These issues have to be fixed by the vendor before we can contemplate switching. People who say it’s easy to “just upgrade your browser” are talking through their hat. People use their browsers to do more than visit whizzo websites.
- 98
October 14th, 2009 11:32 amIf you still want to torture yourselves and test for IE6, I suggest installing IE Collection:
http://finalbuilds.edskes.net/iecollection.htm
It’s a lot simpler than using the VPC image from Microsoft. On the other hand, if you want to be an activist, insert something like this into your website (there are tons of these out there):
http://code.google.com/p/ie6-upgrade-warning/
Either choice is commendable…I’m however encouraged by how sites like YouTube will eventually be phasing out IE6 support.
- 99
October 14th, 2009 11:59 amA great excuse to bin ie6 then.
- 100
October 14th, 2009 12:06 pmIE 6: No.
- 101
October 14th, 2009 12:28 pmTL;DR:
More CSS is compatible with IE 8 than IE 7 and 6.
- 102
October 14th, 2009 12:29 pmIE6 has No everywhere! FAIL :D
- 103
October 14th, 2009 12:30 pmYou guyz told us the problems… now please tell us how to fix them :)
- 104
October 14th, 2009 1:28 pmI am from India and almost 85% of people use IE here(at least whom I have seen and i have seen thousands). Most of them are on IE6 so as far as my clientele goes IE6 still cant be ignored(even a bit). I need some luck!
- 105
October 14th, 2009 2:00 pmGREAT! I just have one question: What’s CSS?
- 106
October 14th, 2009 3:24 pm@Louis
The hover descendant selector style only works if the hover itself has a defined effect, so in the aforementioned case you can do something harmless like this:
a:hover{visibility:visible} or a:hover{display:inline;}
Hover Descendant Demo
Hover Quirks Tutorialinline-block layout works on block elements in IE as well if you reset the style to inline in a separate rule like this:
.column{display:inline-block;}
.ie67 .column{display:inline;}
/* Use conditional comments to add the .ie67 class to the body tag or a wrapper div */Inline-Block Demo
Zoom Method
Crazy AlternativeThanks to Paul O’brien, Stu Nicholls, Bruno Fassino, Hedger Wang, and Peter-Paul Koch
- 107
October 14th, 2009 4:09 pm@Paul Sweatte:
Thank you for that explanation, now I see what the others were trying to say. I’ve never seen that before, that’s an interesting little workaround. It’s also interesting that Sitepoint’s reference doesn’t mention it. Their stuff is usually quite accurate.
But as it stands, technically speaking, the descendant selector doesn’t work. I’ll have to add a note to that item indicating that workaround.
Thanks again.
- 108
October 14th, 2009 4:18 pmHopefully we’ll see IE6 market share drop much lower now that Win7 is being released – as companies now will have a good reason to upgrade and won’t have compatibilities issues with their in-house apps.
The world of design and web development will be a nicer one. IE6 is holding back the web…
- 109
October 14th, 2009 5:16 pmNice article with example. Thanks for sharing :)
- 110
October 14th, 2009 5:26 pmI 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.
- 111
October 14th, 2009 6:28 pmHi,
In ‘Descendant Selector After :hover Pseudo-Class‘ section, I tested your example code, and it works for all IE versions, but you said it doesn’t work on IE6.
This is your code:
a:hover span {
color: #0f0;
}
- 112
October 14th, 2009 6:29 pmIE6 Bugs … “Doesn’t support classes and IDs that begin with a hyphen or underscore”
Strictly speaking (at least in HTML4) no browser should. From http://www.w3.org/TR/html4/types.html
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens (”-”), underscores (”_”), colons (”:”), and periods (”.”)
- 113
October 14th, 2009 7:11 pmI hate Microsoft for making Internet Explorer. Hell, I hate Microsoft for everything besides the XBox. I vote we shoot IE in the face.
- 114
October 14th, 2009 7:38 pmThe simplest solution for making a multi-platform website is to simply boycott Explorer as a whole. To evolve, we must leave the weak in the dust. Survival of the fittest.
- 115
October 14th, 2009 7:46 pmGreat article and, once again: KILL IE 6!!!!!!
- 116
October 14th, 2009 7:47 pmWell .. tht proves IE6 is the worst creation … it wont support anything at all .. .
well it does support a few of the ones that are mentioned as not supported.. i guess it has to do with different service pack versions .
- 117
October 14th, 2009 7:59 pm@lezus: How’s school these days? I assume that’s where you are, since you’re painfully unfamiliar with how things work in the real world.
- 118
October 14th, 2009 9:29 pmwell,
to say frankly you guys should know that ie 6 was was founded in 1995 and the css version 2 was released on 1998, thats why ie 6 is strugling with css 2. Hacking css makes ie 6 works better in some cases.
In my experience I worked out chained classes in ie 6. Please try this to use chained classesPut commas after the class name to use multiple classes for a single div.
.class1, .class2, .class3 { background: #fff; } – correct
.class1.class2.class3 { background: #fff; } – wrongContent here
Anyway thank you (author) for the useful article.
- 119
October 14th, 2009 9:35 pmNext time your client asks “You showed me the page 2 weeks ago, why isn’t it up yet?!?”, show them this: http://www.busitones.com/WebDesignTimeBreakdown.png
- 120
October 14th, 2009 10:12 pmIE6 is the best. I wish i still had one.
- 121
October 14th, 2009 10:25 pmIE6 is not bad, just is to older. Its was built at 2002. Gone.
- 122
October 14th, 2009 10:28 pm@ Emil.Here you go make your wish come true
http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/EN-US/ie6setup.exe - 123
October 14th, 2009 10:29 pmNo surprise that IE6 doesn´t work like he should do ;-) Informative though …
- 124
October 14th, 2009 10:58 pmHi
nice article, we can see (again) the poor css support of ie6 but too, progression of the IE family (finally) and that’s a good thing.
It’s not easy to boycott ie6 when you do a work for a firm, pc are often old and ie6 is the king of the place ;( - 125
October 14th, 2009 11:41 pmDescendant Selector After :hover Pseudo-Class
a:hover span { color: #0f0; }This is wrong, actually it’s possible width IE6 too !
Exemple :
a span { color :red; }
a:hover { _border: 0px solid red } /* to fix IE6 bug */
a:hover span { color: green; }THIS WORKS :)
- 126
October 14th, 2009 11:43 pmThere is a little mistake, your forget the ‘clip: ‘ in your example
Clipping Regions
Exampleview plaincopy to clipboardprint?
#box {
CLIP: rect(20px, 300px, 200px, 100px)
} - 127
October 14th, 2009 11:56 pmIt is interesting that you write about CSS support, yet your website does not show well in some browsers.
- 128
October 14th, 2009 11:58 pmGreat read, one of the better articles on CSS support throughout MS browsers.
Was familliar with most of them, but still a good read to refresh my memory! :) - 129
October 15th, 2009 12:40 amI hope the errors mentioned in the comments above will soon be corrected in the article. e.g. ‘a:hover span’ actually works in IE6 as mentioned by Gonzo. Would be nice to have that article in a simple table, too.
- 130
October 15th, 2009 12:58 amI hope the errors mentioned in the comments above will soon be corrected in the article. e.g. ‘a:hover span’ actually works in IE6 as mentioned by Gonzo. Would be nice to have that article in a simple table, too.
- 131
October 15th, 2009 12:59 amhttp://www.stopie6.com/ :)
I dropped support for IE6 on all my sites. It’s not worth waste of any time now. Nice to know some new things about IE7. - 132
October 15th, 2009 12:59 amfinally, a very good article on IE, which – in any version – will eventually drive any web developer insane. just one thing: i used inline-block on IE in some cases, Rob W is right.
- 133
October 15th, 2009 1:17 amgreat article! excelent and handy overview, putting in delicious right now :) Thanks
- 134
October 15th, 2009 1:34 amthank you for thar article! great!
- 135
October 15th, 2009 1:37 amThis is really a very wonderful post. I hate IE 6.
- 136
October 15th, 2009 1:43 amVery Nice article about comparision of different version of IE, Its very useful for web developers
- 137
October 15th, 2009 2:15 amI love reading comments! LOL… IE 6 is super crap! … nice article learn something today
- 138
October 15th, 2009 2:30 am“IE6/7 bugs : List items with a specified list-style-image will not display the image if they are floated”
In fact, it’s not really a bug, this is what the specs actually describe in CSS2.
The specs has changed that in CSS2.1 :
http://www.w3.org/TR/CSS21/changes.html#q58
Changed rules to convert ‘display’ not always to ‘block’, but to an appropriate block-level display value as given by a mapping table.
Added rule 4 to convert root element’s ‘display’ value according to the mapping.http://www.w3.org/TR/CSS21/visuren.html#dis-pos-flo
Specified value > Computed value
others > same as specifiedIn CSS2, where there were no mapping table, list-item had to be converted to blocks, and by consequence didn’t had any list-specific properties anymore.
- 139
October 15th, 2009 3:39 amI know you like to tell what everybody are saying without thinking. I know it’s a common habitus, however, well…
1º IE6 isn’t crap. It’s old. The standards back there were not well supported. (Today, there are still not well supported, but it’s better.)
2º Recall that FF2 wasn’t that better either. So try to loose the focus over ie6. Do you recall other browsers back there?
3º Telling that IE6 is crap will not solve any issues, and will not accelerate his extinction, because, besides css developers, anyone else don’t really seams to care, hence, ending up blaming the poorly site design anyway. So, my best bet on this is actually:
try to understand the issues, in order to solve them, instead of avoiding them.4º Telling IE6 is crap, for almost all, is a sign of ignorance. And it’s also a common judgement: “I don’t understand something, so, I will tend to say that THAT something is crap”. In other words, when you understand why the bugs are there, and when you actually find a solution to a bug (find, not copy. Anyone?), then, at that point, even if you still think of crap, you will think it in a more respectable manner. What for? Well, that will actually help the community to evolve. Towards what? The standards. So with this atitude, what do I get? Nothing? Yes. So who is crap now? You. Gash, Really? Yup. Sorry.
5º If all the developers who have contributed for the comprehension of the hasLayout issue, for example, if they were on the “IE6 crap so I don’t care” mood, maybe today, we were still seeing the same inconsistencies on ie8. But worst of all, if we follow that path of ignorant intolerance over what we cannot understand because it’s hard to understand and dig in on those things, then, the future issues that we will found(because they will arrive for sure), will not have so much solvers at end.
mem
- 140
October 15th, 2009 3:42 amIE 6 is a major pain in the rear but our site stats shows that 29.7% of the visits come from IE6, on a worldwide scale that is way to high to just ignore!
Anyway, where’s the fun if it all works perfectly?
Good article, now you need to publish a list of workarounds.
- 141
October 15th, 2009 3:49 amHello moderator.
No need to validate this comment, but why is my previous one still “awaiting validation” ? lost in spam ? - 142
October 15th, 2009 3:58 amhi,
It is nice article, can you please tell me about .png image support for browsers because most IE version doesn’t support .png imagesWith Regards,
Sonam S. Diwate
Web Developer / Designer - 143
October 15th, 2009 4:11 amGraceful degredation is the key. I develop websites for modern browsers and afterwards i adjust css so that the website can be USED in older browsers (e.g. drop down navigation opens etc).
For rounded corners I will never use images. Just use the CSS3 properties. If old browsers show square-cut corners.. who cares? When people realize that web is much nicer in modern browsers they will finally switch. - 144
October 15th, 2009 4:40 amAhhh….!!!
I bookmarked this.
I bet, this will solve some pain for desginers. A single-look comparison is always a good one.
I really appreciate your work.
Thanks. - 145
October 15th, 2009 4:52 amDescendant Selector After :hover Pseudo-Class
This is actually working in IE6.
Have you tested it personally, because I have :) – http://bviphotovideo.com (see the Main Navigation for reference).
!AND TEST BEFORE POSTING!
- 146
October 15th, 2009 5:06 amWhile I agree with most of the cases displayed it this article, I cannot miss the fact that there are supported features listed as if they are not. As a web programmer I have often used selectors like “a:hover span”, in many projects, and it works correctly. Also the Outline property typed as a short hand, I even have never thought that I can write it other way, It works just fine. I really don’t have the time to test everything listed here, but mind that the author has some gaps. It is a shame after 9 years of practice!
- 147
October 15th, 2009 5:31 am@Martin:
Thank you for your comment. If you read the previous comments, you’ll see that the “a:hover span” was discussed. Strictly speaking, it does not work in IE6. But it will work with a small workaround, as we’ve discussed. See my previous comments and the one by Paul Sweatte.
If you feel there are other items that are incorrect, please specify exactly which ones, with examples if possible, and we will gladly make any necessary changes. We’ll be adding a few notes to the ones that are mentioned in the comments to explain those further.
- 148
October 15th, 2009 5:43 amGreat roundup! Looks like IE6 supports almost nothing, IE7 supports a lot but not newer CSS3, and IE8 supports almost everything.
- 149
October 15th, 2009 5:46 am@Louis
Alright let’s begin, at the moment I can point for sure about the “Outline” property, and the mistake is mine, for witch I apologize politely.
When I read the all the comments after I saw your response
- “See my previous comments and the one by Paul Sweatte.”I realized that you don’t count partial support as if it has any. So we are both correct, but I really think it will be good to note this in the head section of your article. Not everyone reads all posts (like me), and since this is Smashing Magazine I guess till tomorrow they will be so many that they will be unreadable.
So with this said we exclude partial support, I agree with you.
- 150
October 15th, 2009 5:48 amIE is some sort of evil mockery on standards.
- 151
October 15th, 2009 5:49 amIn IE6 width does not behave like min-width, it applies a fixed width.
- 152
October 15th, 2009 6:03 am@Mr.MoOx:
Thanks for pointing out the typo in the “clip” code example. It’s been corrected.
- 153
October 15th, 2009 6:04 amThank you for the nice article.
- 154
October 15th, 2009 6:09 amAnother IE7-bug is that if you :hover anything else then <a>-elements in massively slows down the website.
- 155
October 15th, 2009 6:23 amGood to know the differences! Nice article.
- 156
October 15th, 2009 6:30 amWhy do some companies keep IE6? There are sofware packages that are not supported on new browsers. Take for instance Oracle 11i ERP system. Until a couple years ago, Oracle would not support IE7. We tried running it and for the most part it ran but there were certain functions that would not run correctly. Lucky for us Oracle supports it now. I’m sure there are currently other software packages that still do not support past IE6. Now, when can we go to IE8?
- 157
October 15th, 2009 6:36 amAs you can see from the number of comments, this is a really good article and very very useful. Lets just hope MS bring the rendering engine inline with FF, Chrome and Safari sooner rather than later… Atleast it is closer than it once was.
Nice one SM
- 158
October 15th, 2009 7:15 amThat was great man. Really good. Thanks!
- 159
October 15th, 2009 7:33 amGreat article, and yet another bunch of reasons to completely abandon IE6.
My advice to web designers: make sure your contract states that you will charge extra for IE6 compatibility of your work.
- 160
October 15th, 2009 9:12 amNot to plug a product, but if you have $149.00, pick up Microsoft Expression Web which comes with SuperPreview. It allows you to see side by side inconsistencies and box models in IE 6, 7, 8, and any other browsers. I go with Firefox and Opera. This program has literally saved me 10s of hours in cross browser compatibility. Nice article!
- 161
October 15th, 2009 10:01 amWhich DOCTYPE was used for testing? IE7 fails some of these tests when no DOCTYPE is present or when it is intentionally put into quirks mode. For example, it suffers from the same chained classes bug that IE6 does when left in quirks mode.
- 162
October 15th, 2009 10:43 amEVERY item in the article denotes a forward progression of the browser, not a flaw or a fault or broken compatability.
The ONLY time any of these items becomes an issue is if you write your code from the front to the back (start coding against the newest browser and then progress to the oldest). Show me a coder who needs to ensure compatability and codes (front to back) that way and I guarantee that they are currently unemployed (or at least not employed as a coder). Its dumb, stupid, idiotic, lazy, {pick a few of your own choice words too} coding that causes these problems and nothing short of it.
- 163
October 15th, 2009 10:54 amu ppl say big companies still use ie6 and they dun want pay for upgrade. But ie7 is free dammit (same as ie8 but it got higher requirements ).
- 164
October 15th, 2009 10:55 amlol, not a SINGLE “Yes” on IE6! GIVE IT UP FOR DA MAAAAAAAN!!! B3
Great article by the way. :’3
- 165
October 15th, 2009 1:03 pm@Gads: Exactly correct.
@Lobo: First, Lrn2English. Second, some companies use older browsers because mission critical software — which is really their core business — is not compatible with anything else. That’s life, it sucks, get a helmet.
- 166
October 15th, 2009 1:52 pm@Gads, can you elaborate ? Are you saying that designing for IE6 first will make it compatible to Chrome or FF directly ?
- 167
October 15th, 2009 2:01 pmRegarding the comments made about IE7 being free, and so it should be easy to upgrade:
Just because software is “free” money-wise doesn’t mean it’s “free” time-wise. Companies that have to upgrade hundreds, or even thousands of computers face man-power issues, not necessarily financial issues.
Also, many companies today are still using web and intranet applications that were built specifically for IE6. Remember that at one time, IE5/6 held something like a 95% market share.
Also, it should not be surprising that the list contains “no” for IE6 in every instance. Since the article was specifically dealing with “differences” then obviously there would not be a “yes, yes, yes” item listed. As was mentioned at the beginning of the article, this list does not include items that lack support in all 3, or are completely supported by all 3.
As a side point, I originally had included a “yes” for IE6 for its support of the “star html” hack, but since that wasn’t really a legitimate CSS property, value, or selector, then I deleted it.
- 168
October 15th, 2009 3:00 pm:last-child pseudo selector doesnt seem to work in IE 7 also.
@Gads,
What psycho builds FOR ie6 and then scales upwards? I personally build for the latest browsers then I work into my css graceful degradation towards the older browsers. If you design for ie6 you must have 90’s designs or something. Very strange.
This being said I tend to do my html and CSS with IE6 at least in mind, even though I don’t go out of my way to make it perfect in IE6 anymore. I tend to have almost no issues with the browser.
- 169
November 11th, 2009 1:25 amlast-child dont work even in 8
- 169
- 170
October 15th, 2009 3:13 pmyo smashing mag.
you really think that ie6 7 8 differences are just that easy.
if ie7 supports any css element, it just show it correctly .
lol
can’t wait for your book and see that gazillion mistakes :) - 171
October 15th, 2009 5:06 pmWow thanks for this, i was just thinking of compiling something like this myself the other day :) Cheers
- 172
October 15th, 2009 5:24 pmwhy isnt there a similar chart with firefox? Much as I love FF its as full as bugs as IE ever was -maybe more so. All this fanboi whining ‘death to ie6′ … you sound like the ‘Death to America’ rants we hear!
IE6 is flawed, so is IE7, 8 comes close but ignorantly and willfully ignores some standards. The answer?
Get Over It.
Grab articles like these that document all the bugs as much as possible, code simply, use a basic template, and avoid ‘features’ and most non-essential css as much as possible :(
even when all browsers ’support’ something, they do it differently! *@#@
anybody can tell me why a dotted border looks like DOTS (round) in FireFox, like diamonds in IE, like SQUARES in another?
WTF?
the nightmare continues….. - 173
October 15th, 2009 5:35 pminformative.. thanks
- 174
October 15th, 2009 6:17 pm@jack parsons: I actually run my own studio and one of my peer’s is working on Scotiabank’s relaunch due out in the new year, and surprise! it won’t be supporting IE6. If banks are willing to make the change, it’s a sign. How is Quark Express treating you, as I assume that is what you are using for editorial work.
- 175
October 15th, 2009 7:13 pmIt’s a very great and strong article!
- 176
October 15th, 2009 7:54 pma very long yet very useful article. kudos!
- 177
October 15th, 2009 10:42 pmAlso a great way to target specific IE-versions (and even different browsers) is the CSS Browser Selector script from Rafael Lima: http://rafael.adm.br/css_browser_selector/. I`d love to write a tutorial for Smashing once as it’s one of the most useful scripts I ever used.
Using it you can use the selector “.ff” for example to specifically target Firefox or “.ie” for all IE-Versions. It`s not only a great way to quick check browser differences (before using Conditional Comments) but also to target browsers which would else be indistinguishable.
- 178
October 15th, 2009 11:18 pmGreat reference !
- 179
October 15th, 2009 11:57 pmSupport-IE6-No almost everywhere
Conclusion : everyone should (MUST!!!!) use IE6 forever :-))
- 180
October 16th, 2009 12:01 amI really believe people should update their browsers. It’s not about being lazy or ignorant, it’s about investing whatever time you virtually waste creating specific sheets to support an older version of a browser, to developing new functionalities and evolving.
It’s about progress.
- 181
October 16th, 2009 1:01 amGreat reference !
IE6 must disapear in world
- 182
October 16th, 2009 2:13 amdebugging for IE6 is frustrating and it’s almost a limit for designers.
@Sonam S. Diwate
use AlphaImageLoad filter to force IE6 to see transparency on PNG images, remember to declare background: none after the filter
http://msdn.microsoft.com/en-us/library/ms532969(VS.85).aspx - 183
October 16th, 2009 3:18 amNice article, very useful! Bookmarked.
But how f**king hard can it be for MS to force people to update their IE6, it’s insecure and a pain in the ass for us developers. I’m lucky if I’m able to evade creating at least two extra css-files on clients sites.
- 184
October 16th, 2009 3:49 amIE6 is there still one… it didn’t die yet!?
Thanks for the summary!
- 185
October 16th, 2009 3:52 amI’m really not an IE fan at all, but this made for interesting reading. As a dabbler in website coding and design, I’ve always found IE to be the most frustrating of all browsers (I use Firefox so generally lean towards perfecting a ‘look’ there).
- 186
October 16th, 2009 4:49 amFor those people decrying that IE6 must suck because all the items in this list show that IE6 does not support them, need to realize that the list is only showing INCONSISTENCIES between the different versions. That means that if the support is the same across all three versions (either YES or NO) it won’t show up here. Since Microsoft has improved the standards compliance in each iteration of their browser, it is unlikely that IE6 would support something that either IE7 or IE8 wouldn’t.
- 187
October 16th, 2009 6:05 amjust when will the users stop using IE6??
- 188
October 16th, 2009 7:51 amRegarding what is said in the article, I found this trick to work on IE”:hover on Non-Anchor Elements”:
* html #links li a { /* make hover effect work in IE */
width: 400px;
}Cite: “And now the CSS. In order for the block hover effect to work properly in IE, we need to make the width of the link the same as that of the list item.”
- 189
October 16th, 2009 8:50 amI’m sorry, but I don’t find this article of any use. All the noted CSS topics are really niche CSS rules that I learned to completely avoid to get cross-browser compatibility. It’s like saying the # -moz-border-radius-topright / -webkit-border-top-right-radius would only work in FF 3/Opera/Safari 4/Chrome2.
Seriously, how often do you normally use a Transparent Border, Clipping Regions, Child Selectors, Page-Break-Inside Boxes and Adjacent selectors in your project? There are much simpler ways to achieve any of those using basic CSS.
- 190
October 16th, 2009 9:57 amGreat information here and definitely useful!
Thanks again!
- 191
October 16th, 2009 11:14 am@Louis (October 15th, 2009, 2:01 pm)
Larger companies’ IT departments typically download the updates and any new install.exe to the main servers, then push those files to their relevant networked machines (saving company bandwidth and time.)
Smaller companies can do so too, even SOHO based networks can be configured to do same. There is no valid excuse to keep clinging onto IE6. Compare these pages:
http://en.wikipedia.org/wiki/IE_6
http://en.wikipedia.org/wiki/IE_7
http://en.wikipedia.org/wiki/IE_8Not even MS themselves can support IE8 to it’s fullest, and IE6 to it’s fullest, off the same code-base – just one of the many reasons for the dual rendering engines in IE8.
We have enabled this IE6-notification on our sites:
http://www.ie6nomore.com/code-samples.html - 192
October 16th, 2009 11:26 amIE6 supports nothing-what a surprise! Nice article, really helpful information!
- 193
October 16th, 2009 3:08 pmIE in general is crap ;) But it’s a nice one here. Thank you for this article…
- 194
October 16th, 2009 3:14 pm@Lezus: Banks have a specific reason to discontinue support of older browsers and it has nothing to do with design.
- 195
October 16th, 2009 3:24 pmSeriously…this article could have been titled “IE6 barely supports CSS” and had the same effect.
I realize that we can’t expect old software to display things that were created/finely-tuned after its creation correctly, but the main point this article points out, is that there are 3 VERSIONS OF THE SAME PROGRAM being widely used. Sure, for people who know what they’re doing, upgrading is easy. But most people probably don’t know what version they are using, let alone what a web browser even is. They’re just using “the internet”.
Internet Explorer updates should be part of the mandatory Windows updates with all the bug fixes and patches, then we wouldn’t have this problem.
- 196
October 16th, 2009 7:11 pm“Alternative Values for the Display Property” You can set inline-block in ie6 and 7 if you use zoom:1; with it.
- 197
October 16th, 2009 10:05 pmHow terrible IE6 is T_T
- 198
October 17th, 2009 12:34 amBan IE6! :) by the way great article!
- 199
October 17th, 2009 12:37 amSo basically anything that is of use IE6 can`t do.
- 200
October 17th, 2009 2:22 amIt wanted to make this article known to Japan, and the following articles were written.
もうIEで泣きたくない!IE6,7,8 でのCSS対応度の違いをまとめてみた - 201
October 17th, 2009 6:15 am@John Faulds = the script you mention is good, but not perfect. For instance, repeating background images on floated containers do not work in when this script is enabled. Also, it can really slow down larger sites. I do however like the *-trans.png alpha transparency support.
- 202
October 17th, 2009 10:32 amConclusion of this article: ripIE6.com
- 203
October 17th, 2009 4:20 pmSorry my bad english.
I think all this is waste of time. I want all visitors can view my site: So I use oldschool HTML code. Works well in any device. I miss HEIGHT=”100%”.
Professionals must don´t care for browsers.
Anyway, 99% of visitors uses IE.
Other thing: Flash and Tableless sites sucks too. - 204
October 18th, 2009 5:08 amIs there anything that works in IE6?
- 205
October 18th, 2009 9:11 amreally helpful for developers.
- 206
October 18th, 2009 9:08 pmWouldn’t it be nice if there was only one browser. Just not IE.
- 207
October 18th, 2009 10:57 pmthx,i hate IE6.0
- 208
October 19th, 2009 12:22 amInteresting article, opened my eyes to some existing CSS rules that I was unaware of! Many thanks.
- 209
October 19th, 2009 12:32 amIE6 is real pain..
Supports nothing but anyone uses it :( - 210
October 19th, 2009 1:20 amVery nice article!!! Its really helpful for developers
Any way Thank You!!
- 211
October 19th, 2009 1:35 amOne thing I recognized is that if you need to unset a clip you would set it to ‘auto’. This does not work in any IE.
Unset it using clip: rect(auto);
btw. a:hover span does work in IE6
- 212
October 19th, 2009 4:44 amSo… basically IE says no to everything.
- 213
October 19th, 2009 6:58 am@jack parsons: You have no supporting facts to your statement.
What you are suggesting is that we as designers must not use the resources supplied to us until the backwards users decide to hop on board. It is our job to develop the digital world and to expose people to things they may not be familiar with.
Do you really think mankind made it this far by just dwelling on the creation of the wheel? I didn’t think so.
- 214
October 19th, 2009 7:20 amRegarding those stuck with IE6 in corporate environments: COMPLAIN! The increasing numbers of sites that will no longer work correctly in IE6 is your cue to launch the complaint machine on intransigent corporate IT departments. Let them know that you are not happy. Rinse. Repeat.
It won’t happen faster until you complain loudly and make the change happen. - 215
October 19th, 2009 9:15 amGood article. Thanks for doing the leg work in comparing versions of IE.
It would be nice to have only one “standard” to work towards for folks browsing the internet, but alas, that is not the reality. So we as developers just have to understand the differences and deal with it.
Although I am generally a strong advocate for using the lastest version of a given software, there are some users that have no control over the version of the browser that they are using, and sometimes for good reason.
TL
- 216
October 19th, 2009 11:42 pmVery helpful article for Developer as well as UI Guys. Thanks for nice article.
so can i get same for CSS 1, CSS2 or CSS 3Thank you very much :)
- 217
October 20th, 2009 10:55 amOs desenvolvedores deveriam parar de se preocupar tanto com o IE6. Estou barrando, simplesmente (via script)
- 218
October 21st, 2009 7:33 amHi guys
Every body know this IE6 is totally wast, But why the use ? i am relay fad up with IE6
good article “Keep up the good work “ - 219
October 21st, 2009 8:49 pmGood article.
- 220
October 22nd, 2009 12:59 amGenerally it’s seems to me to recognize a pattern: IE6 it’s obsoleted, deprecated and should be defunct. Maybe (in a perfect world) when possibile companies should advice to their customers and users to upgrade their browser.
Supporting this browser is time and energy consuming. - 221
October 22nd, 2009 4:51 amNice blog.
but fixes for the bugs will be much helpful.
I developed a website for one of my client, it goes perfect with opera, mozilla,chrome, safari…. but IE is heck whether its 6 or 7.. both of them sucks.In IE6 my margin and padding are behaving like double valued, than it is original value.
Can any one give me a clue? why this is happening? - 222
October 22nd, 2009 5:41 pmIE6 suck
- 223

- 224
October 23rd, 2009 12:26 pmNice article. I’ve been dealing with some of these issues..
- 225
October 25th, 2009 2:07 pmThank you for comprehensive, excellent article. I design education and health website for low income audiences. I really want site visitors to be empowered by the info on these websites — including poor people using old machines with IE6, dial-up or who don’t have legal copies of Windows. As a web designer my job is to communicate to everyone my client is trying to reach. Thanks, Louis, for making this easier.
- 226
October 25th, 2009 10:14 pmIt still amazes me that so many people continue to use the “virus factory” better known as internet explorer. When I am designing sites from scratch I constantly find myself having to use little tweaks and hacks just to get things to look right. They always seem to work fine in Firefox. ::sigh:: 60% of my statcounter visitors are using some version of IE. Hand Poured Candles
- 227
October 27th, 2009 7:35 pmShort Version:
IE6 sucks
IE7 sucks less
IE8 sucks, but you haven’t figured out how yet. - 228
October 28th, 2009 7:30 amMicrosoft still supports Windows 2000 through July 2010. That means no IE 7+, no .NET 3.5, and no Chrome. There are apparently a lot of organizations out there still using Win2k because it doesn’t require very powerful hardware to run, and why MS has extended support on it.
For what it’s worth, NS 4.7x *could* handle CSS layouts. They weren’t great looking because of all of the rendering irregularities, but it could still do it. Making IE6 work requires a lot less effort than NS 4.7x ever did. Also, I walked to school up hill both ways in the snow.
- 229
October 29th, 2009 12:06 pmpretty good article. Finally, Internet Explorer is working w3c compliance
- 230
October 31st, 2009 12:59 amWhy do we still have to support IE6? Although many techies don’t use it, the stats show that it is still used by about a quarter of the planet. See http://princeofgonville.blogspot.com/2009/10/which-browser-is-most-popular.html
- 231
November 1st, 2009 12:53 amvery useful article! excellent job. I hope somebody hacks all ie6’s. please.
- 232
November 2nd, 2009 8:41 amIts wonderful to see this comparison in such a simple layout.
- 233
November 8th, 2009 12:05 amI hate IE6 !!! it will not let us use this to optimize the CSS :(
- 234
November 9th, 2009 9:57 amThe curse with IE never end, because now we have problems with ie 6, after with ie7 and after IE8…… the solution for this problem is the IE update to a new version automatically like firefox
- 235
November 10th, 2009 2:58 pmthanks man very useful article.
- 236
November 13th, 2009 4:29 amFor those who are asking when IE6 would “die” – well Microsoft announced that it will support IE6 until 2014 !!! I don’t like IE, but unfortunately have to develop for those (stupid or ignorant ?) surfers using IE …
nadim, mauritius
- 237
November 26th, 2009 12:20 pmHi,
We have two address text box on a ASP.NET control.Size of both text box is 35.We show both text box data in next page as confirmation .Now if user gives max lenght for each text box, there is line break space comes between text box data in Internet explorer 6, but it is wokring fine in IE8.any idea ,please help.In confirmation page text box data is appear like below(IE6)
0123456789012345678901234567890123401234567890123456789012345678901234
but in case of IE8 , it appears like
01234567890123456789012345678901234
01234567890123456789012345678901234
which is correct. - 238
November 28th, 2009 10:43 pmGood reference. Thanks for the post.
As Ravikumar V, Gustavo Macedo mentioned IE6 is not bad, just is too older.
- 239
December 28th, 2009 8:19 pmI will admit, Louis. When I saw all the IE6 = NOs, I thought you were full of it. But you proved me wrong only because I took the time to read all the comments including the one where you link to your benchmark.
So… pragmatics here. I work in professional web development and so do you.
Why don’t you just link to your JavaScript tests after each entry above? And go with “partial” as a descriptor a bit like the entry at http://blog.orite.com.au/web_development/2009-04-09/css-implementation-chart-ie6-ie7-ie8/ even if that is not what you’d originally had in mind.
Both things would help the overall credibility and truly definitive nature of your results (which is what you said at the outset: you want this to be THE guide people use), because like others here, I was initially very skeptical because (among other things) I swore I’ve seen IE6 support a:hover span.
I’ve not had a chance to test, but in retrospect, it is probably because I use Dean Edwards’ compatibility scripts–see http://dean.edwards.name/weblog/2008/01/ie7-2/.
However, here’s the clincher: Your test case that you linked in the post above put a complete end to my skepticism. If you discretely linked to your benchmarks, opening them in a new tab, you’d (a) either silence the skeptics or (b) find that you had overlooked something important. And neither of those are bad things! :)
- 240
January 26th, 2010 2:53 amIe6 = big trouble for all designers and developers…
- 241
February 16th, 2010 10:01 pmWhat’s all the fuss about IE 6 , IE 6. Why don’t we all leave the poor fellow alone. It’s not that it never served it’s masters. It totally did. Now that the poor guy is old you all selfish people wanna kiss him goodbye? Just kidding.
As far as the constantly evolving web development is concerned, IE 6 needs to go away if we wanna give a warm welcome to HTML 5 & CSS 3. if that doesn’t work for you, why don’t we all do what andy budd from ‘clearleft’ does. Server different templates to different browsers based on it’s capabilities to handle them. This approach sounds fair enough to me. This way you won’t have to compromise your skills & you will never disappoint you client either.
Cheers,
vinod,
mumbai
- 00
There are no trackbacks at this time. If you are interested in leaving a trackback, please use this URL.
Leave a Comment
Make sure you enter the * required information where indicated. Please also rate the article as it will help us decide future content and posts. Comments are moderated – and rel="nofollow" is in use. Please no link dropping, no keywords or domains as names; do not spam, and do not advertise!
Interact
Popular
- 100 Wordpress Themes
- Photoshop Tutorials
- Fantastic Wallpapers
- 40+ Excellent Freefonts
- Dual-Screen Wallpapers
- Wordpress Themes for 2009
- Illustrator Tutorials
- Incredible Free Icon Sets
- High-Quality Free Fonts
- 30 Scripts For Galleries
- Photoshop Text Effects
- Useful Icon Sets
- Web Design Trends
- iPhone Wallpapers
- Before Launching a Website
- CSS Layouts And Templates
- Photoshop Actions
- Stunning Pictures and Photos
- Fantastic HDR Pictures
- Logo Design Tutorials
- Free Design Templates
- 10 Mistakes In Logo Design
- Photoshop Custom Shapes
- 40 Creative Design Layouts
- 8 Layout Solutions
- 53 CSS Techniques
- Photography Techniques
- Black & White Photography
- Styling Design Elements
- CSS-Based Forms
- 50 jQuery Techniques
- 50 Portfolio Websites
- 50 CSS Techniques
- Creative Logo Designs
- Desktop Wallpapers
- 25 Open Source Mac Apps
- 50 Free Icon Sets
- How To Organize Information And Improve Your Design - http://bit.ly/cUxENK
- How to Scan, Absorb and Process Information - http://bit.ly/bfjq51
- 7 Essential Do’s & Don’ts of Website Navigation - http://bit.ly/b3ElO7
- Web design with grids, an article by Ben Schwarz - http://bit.ly/aPRP7z
- Colorful Sliders With jQuery & CSS3 - http://bit.ly/aTLjhX
- Design better websites by thinking about your kitchen cabinets - http://bit.ly/9gIbhr
- Four Modes of Seeking Information and How to Design for Them - http://bit.ly/cbu3ox


Basically, IE6 is crap… nice article though.