How do I get IE5.5+ to render advanced CSS?
By using IE7...
<start snip>
No, it's not a joke (or at least I don't think it is).
Dean Edwards (http://dean.edwards.name/ ) has been working on improved CSS support in IE (http://dean.edwards.name/IE7/ ). Although the project is entitled "IE7," some further investigation leads me to believe that there is no real connection to the official release of the next version of IE. It's simply a set of enhancements for the current generation of IE (5.5+), and a hint at what's possible in the future.
Check out the compatibility chart for a list of his enhancements, current progress, and test pages. Among them are new CSS2 (and even some CSS3) selectors, properties, and more. There's a whole bunch of stuff that you've been waiting for...
- support for :first-child (CSS2) and :last-child (CSS3!)
- proper support for :active, :focus, and :hover (:hover now works on all elements, not only links)
- element[attr] { support for attribute selectors }
- element[attr="foo"] { support for attribute matching }
- child selectors (> ) and adjacent siblings (+)
- multiple.classes.stringed.together
- support for :root (CSS3!)
- full support for min-width, max-width, min-height, and max-height
- support for the <abbr> element (scheduled to fully replace <acronym> in XHTML2)
You can get all of the above working in IE 5.5+! All you need to do is link to Dean's IE behaviors (.htc) file.
...and link to ie7-html.css as you would any ordinary CSS file. Note that ie7-html.css must appear before all other stylesheets to work properly.
Also note that ie7-html.css will not validate, because it uses the IE-only CSS property "behavior" to link to the .htc file. While this isn't a deal-breaker for me, there are those who insist on using only 100% valid code and/or look down upon the usage of any proprietary solutions. My only response to them is that I feel that the advantages of using this patch (significantly improved standards support in IE) far outweigh the disadvantages (a minor validation error, and for some, the guilt of having utilized a proprietary hack). I like to think of it as taking one step backwards, in order to move two steps forward.
<end snip>