Even though my company has decided to stop supporting IE6 for our upcoming projects it doesn’t mean we should ignore it completely. At least I don’t.
A lot of web design firms have been pushing and advertising different websites to try to “kill” IE6. Expression Engine will stop supporting it in their next release, and franqly, with IE now in version 8 we have very little reaason to support it unless you live in an under-developed country where PC specs are minimum.
A problem that I always see occuring when someone other than myself is trying to debug some CSS for IE6 is that it becomes increasingly hard to do so the “deeper” you go in your CSS definitions.
99% of IE6’s problems come from containers or containing divs. If you already have styled content inside of the said Div, the difficulty in debugging the problem increases greatly. Not because it’s any harder to fix the issue, but it becomes harder to discover where it is.
You have to pic the lowest child element in the hierarchy, and slowly climb your way to the top. Of course this “climb” becomes faster the more you do it, but you always have to repeat it unless you take care of faulty Div before you go any further.
This is what I have been applying to my last projects, and thanks to that my ie6.css fix files have gone from a dozen or two definitions to only a couple, or none (!!!) in some cases.
If you take care of looking at IE6, while you’re defining the backbone of your whole CSS structure, you can pretty much ignore ever looking at IE6 again unless you need to float something again.
Most of IE6’s rendering problems, come from the fact that a div might not have a defined width. If your container has a fixed width, your child one doesn’t, and it happens to be acting a bit weird, just give it a width:100%.
You want the div with floats inside to grow with something other than a clear fix element? Just do the fix above and display:inline on the container div.
It doesn’t hurt Safari or Firefox, it’s not completely incorrect to do so, it doesn’t involve hacks it doesn’t differenciate one stylesheet from another.
If you follow this pattern while coding any website, I’m sure that IE6 will become much less of a hinderance in your progress. And there’s nothing better than following this method, style all the remaining text and code, and then realising that after you refresh the site for the final time on IE6 it looks almost exactly the same as it does on your standards-loving favorite browser.