|IE7 -- What is it? How do I use it? Pros and Cons|
As per request: [webmasterworld.com...] (msg 20)
What is IE7?
The name itself -- IE7 -- suggest a "next generation" version of the browser Internet Explorer. While that's not extremely accurate, it is not that far from the truth. Why's that? IE7 was developed by Dean Edwards [dean.edwards.name] as an open source project aimed to provide standards compliance for Internet Explorer.
As we all know, Internet Explorer has, despite its claims, failed miserably to provide acceptable support for CSS, which is really a pity since IE is by far the most commonly used browser today. There has been a lot of speculation as to what the next generation of IE will provide. Everyone hopes that we will finally see standards compliance along the same levels as Mozilla/Opera/Safari. Unfortunately, the next version of IE is not due to be released for another couple years (along with Windows Longhorn).
Will the future of CSS be crippled by IE's unwillingness to conform to standards it openly claims to support? Somewhat, probably. If nothing else, "CSS folks" and web designers will be extremely limited in what they can do. All the tools are already there, as part of long established CSS standards (again, these are standards that Microsoft and the IE team openly profess to support wholeheartedly). All other recent browsers support CSS as completely as possible, and are constantly striving to ensure 100% compliance and conformance. Except for IE, being the odd-ball.
This is where the IE7 [dean.edwards.name] project comes in. In short, IE7 is described as a "compliance patch [dean.edwards.name]". As Dean himself describes it:
|[IE7] is an attempt to make Microsoft Internet Explorer more compliant when it comes to web standards. |
Web developers are becoming increasingly frustrated at the lack of convergence of the major browser vendors. We need a level playing field!
CSS is a powerful technology. Many of it's (sic) more advanced features go unused by web developers because of Explorerís poor support of CSS standards.
IE7 provides support for most of the important CSS enhancements.
In essence -- by applying the IE7 compliance patch, all versions of Internet Explorer (5 or higher) automagically become standards compliant and will fully support both CSS1 and CSS2!
"Just like that, eh?" Yep! Just like that!
How does it work?
Now, the beauty of this is that you do not need to resort to any hacks. You do not need to alter your markup or CSS in anyway. Heck, you don't even need to educate yourself [positioniseverything.net] with regards to to the numerous quirks and bugs inherent in every single version of IE.
A single line in your (X)HTML/XML document, and all the problems are solved!
How do I use it?
I think I'll let Dean take over [dean.edwards.name] from here. ;) Seriously, if you haven't been to the IE7 web site [dean.edwards.name] yet -- go there! It explains all the technicalities and other tidbits of useful information.
In short, however, all you need to do to make your HTML document standards compliant is include the following lines of code:
|<!--[if lt IE 7]> |
Seriously -- that's it!
Pros and Cons
"So, what's the problem here... There must be some drawbacks, eh?"
Yes, there are... And Dean has covered the caveats [dean.edwards.name] as well. Some worth mentioning are:
- IE7 is still alpha code, which means it's a work in progress
- Fixes are applied to internal and external style sheets only (meaning, anything between the <style></style> tags... NOT inline styles)
- Certain CSS hacks can adversely affect IE7... so don't apply any of your own hacks. Let IE7 do the work.
- IE7 is not dynamic, which means that certain fixes may not be applied if you programmatically change the document structure
"So, what does it fix?" How about Alpha transparency for PNG images, fixed positioning, arbitrary :hover, min-width, max-width, sibling/child selectors... You name it! (Or, at least check out the compatibility chart [dean.edwards.name].)
Another drawback is that if you rely heavily on certain CSS properties (such as fixed positioning), your page may render somewhat slowly...
Personally I haven't experienced any of the aforementioned drawbacks. Instead, using IE7 allows me to code more freely, using the tools that can best do the job, without worrying about IE not being able to handle it properly.
Also, IE7 is somewhat modularized... So, there is no need to include ALL the fixes. Just include whatever you need.
All-in-all... IE7 is a lightweight solution if you consider caching and the headaches it saves you. On the other hand... If you can do without advanced CSS, that's a better option.
First code without including IE7. Then see what things look like, and if there are any small custom hacks/tricks/whatever you can use. Then use IE7, if absolutely necessary.
THANK YOU, m'friend! Talk about "ask and ye shall receive"! That's exactly what I was looking for: real world stuff, oriented more to the non-techie (me, a lot of the time, for anyone who's wondering....)
Okay. I have read most of Dean's expository admonitory stuff, you just make it easier to understand. So now I guess I don't have ANY EXCUSE to put off trying it.
Again, my thanks!
Thank DrDoc! I've been curious about IE7 since I read about it here a few months ago. I haven't had the opportunity to try it out yet, so I'm very interested in your and everyone else's experience with it.
One question about its implementation of fixed positioning: does it suffer fron the jittery lag that I've seen in other JS patches? Most I've seen have been somewhat less than "glued" in place.
DrDoc, thank you for the lucid description.
What are your thoughts on the 'fear' that users might have JS disabled? How well-founded do you think this fear is, and do you think it's worth factoring into the decision of whether or not to use IE7?
With JS disabled, there's all kinds of havok that could be reaped on a site using IE7. Suddenly non-transparent images, the reappearance of box model issues, etc. Obviously, the best defense is a site designed not to fall apart from these problems, but it's a reality that sometimes ythe decision is to let those problematic things ride. With hacks, or IE specific stylesheets containing hacks, there's nothing a user can do to override your fix, but having JS turned off (and thus IE7) is another story.
I'm not arguing against IE7, which I think is a brilliant idea; I'm just hoping to hear your (informed) take on the question.
Don't think so ;) [dean.edwards.name]
To me, it's all about weighing the benefits, the pros and cons. Most of the time I'm not relying on CSS advanced enough to need more than a few simple style rules to "fix" IE. True, I could use IE7 to correct the "problems", but is it worth it? Not if I can do it in a much simpler and easier way myself. IE7 is great if you don't want to worry about various bug fixes on your own...
If I were just starting out with CSS I'd be all over IE7. But now, with the hard work that has been put in so far to learn CSS from the bottom up? Nah!
IE7 is great. I can really see its value and benefits. But whether or not to use it should be determined for each individual project, and by each and every developer.
There's no "one answer fits all" solution to the IE-lacking-standards-support problem...
|If I were just starting out with CSS I'd be all over IE7. But now, with the hard work that has been put in so far to learn CSS from the bottom up? Nah! |
Amen to that! I've spent way too much time re-reading pages on PIE [positioniseverything.net] to go using an easy fix now! ;)
Thanks for sharing your take. I'm a little relieved to hear that you're not giving an out-and-out endorsement, but are thinking through some of the same uncertainties.
I think what Dean Edwards has done is admirable.
However. Doesn't this give the proprietary lobby within MS extra ammunition against the standards lobbies within and outside MS?
When Longhorn comes out and pays the merest lip service to standards, won't MS turn around and say: "The majority of the browsing public is happy with it, so we don't see a need to change. If you want it to be standards compliant, we're sure you can rustle up a patch - look at the great things Dean Edwards did with IE7."
Web Designers will not want to use this patch though as it is important to be able to see sites we are developing as our clients will see them (I bet a very small minority will actually apply an open source patch). Personally I have long given up on IE as my primary browser so I have to remember to use IE while developing. I can't believe the security holes in IE. I just visited one particular web site and it *installed* no less than 4 spyware programs! I knew this because I happened to have winpatrol working (a highly recommended program available at download.com).
ronin, microsoft have the worst case of Not Invented Here syndrome of any company I know. Somehow I can't see them making any mention of IE7.
|I bet a very small minority [of clients] will actually apply an open source patch |