Microsoft has released Beta 1 of Internet Explorer 8, and tonight I installed it on a VMWare Virtual Machine to test it. If you've at all attempted to conform to W3C standards, as well as achieve some Search Engine Optimization by employing Cascading Style Sheets (CSS), and especially CSS Level 2) instead of good old HTML tables, you may either be a) pleasantly surprised, or b) unpleasantly staring at the prospect of many hours of hand-editing CSS to repair to your site(s). I develop sites for a living, and I prefer a). Fortunately, Visual Studio 2008 has Intellisense for CSS style sheets.
But it turns out that there is a quick (or temporary) fix. If you have all those special CSS selectors living in your iefixes.css file (or whatever you call it!), you can continue to use them by employing a single meta tag in all of your pages (this is especially nice if you use just a few master pages for a site, and can thus place the this tag in just a few places). At any rate, add this meta tag to your <head> section:
<meta http-equiv="X-UA-Compatible" content="IE=7" />
May your time be spent productively.
Update: Here are some additional results of testing. One of my more complex layouts totally broke with the above meta tag in place. So I tried the IE8 Internet Explorer 7 Emulation button, and after restarting IE8, the site came up like it does in IE7 (and other browsers). Fine, but how am I going to convince users to hit that button? There's a built-in user training issue for Microsoft! OK, what about complete IE8 standards mode? So I set the above meta tag to IE=8, and only two elements in my complex layout broke, and not catastrophically at that. So, maybe this new world won't be so bad. But I can also see the possibility of some more conditional style sheet loading, i.e., <!--[if gte IE 8]>. Sheesh, when will it ever end? As one respected observer noted, "Hardcoding a reference to a specific browser as a necessary part of the page’s markup feels plain dirty."
posted @ Thursday, March 6, 2008 10:06 PM