An objective look at IE CSS
While Internet Explorer's patchy support for W3C CSS can lead to hair-pulling frustrations, its CSS extensions offer designers and developers an extra set of tools which, it might be argued, have their rightful place.
Standards-based designers often appear to loath Microsoft's behemoth browser, sometimes for good reasons. Internet Explorer's patchy support for W3C CSS (particularly attribute selectors), its non support for the abbr tag or PNG transparency on the Windows platform, range from minor annoyances to hair-pulling frustrations. Add to this a fashionable loathing for Microsoft in general, and the world's most used browser has a hard time making friends with designers or developers. But it could be argued that Microsoft's CSS extensions offer us an extra set of tools, which also have their rightful place. So I will play the devil's advocate for a while.
If George Orwell has been a web designer, he might well have written,
Standards good, Microsoft bad! into Animal Farm. But while the demonising of Orwell's Napoleon may strike a contemporary chord with a certain well-known billionaire, the facts remain that,
- Internet Explorer remains the browser of choice for the world's majority of web users, and
- When used in the right context, Microsoft's CSS 'extensions' can offer a useful, extra degree of control over visual presentation.
So just because these extensions to CSS are not part of the W3C specifications, should designers avoid them 'on principle'?
Taking a pragmatic approach?
Web designers are paid to make web sites, and our job has always made use of a variety of different technologies and tools. Experience tells us when particular tools are best to accomplish the job in hand. Photoshop or Fireworks, MovableType or WordPress, Flash or animated GIF, are all decisions that we make on a daily basis.
Shaun Inman opened my eyes to the possibilities of designing to the capabilities of a particular browser with his CSS ZenGarden design, This Is Cereal. For this design's menus, Shaun took advantage of full CSS support by modern browsers, hid styles that Internet Explorer did not understand (providing a script-free browser detection method) and gave Internet Explorer users a stylish 'alternative'.
Turning this logic on it's head, would it be wrong to provide an adapted presentation to Internet Explorer users through the careful use of Microsoft's filters?
But does this harm standards?
Such a blatant use of non-valid technologies could be seen as flying-in-the-face of the all important web-standards movement, or worse a return to dual-design or code-forking. I would be the last to advocate these outdated methods. But striving for leaner and validated code, web-accessibility or semantic mark-up need not be affected by the careful application of a technology.
As long as mark-up and meaning remain unaffected, can using these technologies really do any harm? After all, there is nothing inherently wrong with Flash content (another proprietary technology), provided that a meaningful alternative is available to viewers without the Flash plug-in.
Don't break my validation!
As a measure of professional standards, designers and developers should strive for validation of their code. But employing proprietary techniques often results in a validation failure, a point illustrated by the need to develop standards-compliant methods of embedding Flash content.
Through the separation of Internet Explorer only CSS into a second, external CSS file (ie.css), and the use of conditional comments to load them, we can utilize these proprietary techniques without breaking our validation.
<!--[if IE 5]> <link rel="stylesheet" type="text/css" href="ie.css" /> <![endif]-->
So in conclusion
The web is a wonderful mix of technologies and our job as web designers is to make the best use of these technologies and provide the best solutions to our clients' needs. We should not throw out the opportunities provided by these technologies just because their developers happen to be Microsoft, Macromedia or any other multinational conglomerate. A responsible use of technology, regardless of its source can make for a richer and more varied web.
#1 On May 18, 2004 11:51 PM Mike Pepper said:
Provided one delivers properly controlled proprietary CSS extensions to the appropriate browser, there's no reason not to take best advantage of any browser's feature-set. We're already doing this within CSS using a number of hacks to work around limitations through poor or plain incorrect interpretation of W3C CSS specifications (IE box model hack).
The trick is to know why you're taking advantage of the augmented CSS set in IE. It's far too easy to bells and whistle a design for the sake of it. The classic example is the extended scrollbar feature set, homogenising the site theme. There are instances when the wrapper is as important as the letter in design context when a sleek minimalist approach benefits the overall schema and enforces branding.
#2 On May 19, 2004 11:21 AM Russ Weakley said:
I think it's a very interesting idea, but my main concern is that it is based on the mindset of providing two solutions (like the old code forking)... one to a set of browsers and another solution to IE.
It also could be seen to be encouraging Microsoft to develop non-standard features again. If developers seem to be adopting them, could this make them more determined to extend these features? It may seem pedantic, but on one level we would be undermining all the hard work of WaSP and others who have fought to keep IE on track.
Ideally, we should use no hacks, no IE filters, and still be able to produce layouts that work well in modern browsers and degrade gracefully in older browsers.
This is achievable, but depends heavily on the particular site, the layout, the target audience and their browser types etc.
I guess the question would be "is there anything in these microsoft extensions that is of that great a value?". If so, then there should be an arguement for including them in future standards. Until then, why not use the standards as they are.
I generally agree with Russ on this one.
I concur with Russ (and Andy); leaving the door open to include and support proprietary code through browser sniffing would be a definite step backwards.
MS simply need to get their act together regarding IE and established Web Standards; v5.0 is arguably a superior browser to v6.0 - in this developer's humble opinion - when dealing with Web Standards, and so it shouldn't be a huge amount of work to make IE v6.5/7.0 a highly-respectable piece of software for developers and end-users alike.
I also concur with Russ but want to add the folowing: Microsoft is a member of W3C and helped creating the standards they themselve do not implement correctly. So where's the logic in that? Furhter more, where you state that "Internet Explorer remains the browser of choice....", is that really true? I don't think it's a choice at all: because Microsoft always shoved IE down your throath it has become the "leading" browser. And we all know that the average user doesn't take the effort to use a decent browser. Keeping this in mind, as a designer you will go backwards if you always will try to humour IE and we'll always be stuck with something that is patchy.
#6 On May 24, 2004 02:05 PM Richard@Home said:
When I write database driven site/applications, I write my SQL to take advantage of the back-end. I 'try' and keep things as ISO standard as possible view that it will make porting it to another back-end easer later.
Sometimes though, breaking the standards can be worth it - the MySQL LIMLIT clause for paged recordsets is a prime example - you should see the hoops you need to jump through with SQLServer to provide the same functionality.
And there lies the problem... You enable one 'neat feature' for a specific browser and then think - hold on, this is so cool, why should my other uses not have it too? So you wind up coding an alternative for them.
#7 On May 25, 2004 04:53 PM Philip Chalmers said:
Depends what you're trying to do and in what environment.
Most intranets exclusively use IE, so it's reasonable to use IE-specific features there.
For the WWW, much use of IE-specific features is intended to work round IE's poor standards support, e.g. using filters to get the effect of PNG alpha transparency. I see nothing wrong with that.
I'm not even against using IE-specific features to do things the standards don't support, provided the code degrades well in compliant browsers.
I think designers & developers will have to be pragmatic until IE 7 (or whatever in Longhorn) has almost completely replaced IE 6 - and that assumes IE 7 (or whatever) has very good standards support.
#8 On June 3, 2004 04:10 AM Anura said:
Interesting article in the Sydney Morning Herald today about the future of web standards given Microsoft's dominance (http://smh.com.au/articles/2004/06/02/1086058908173.html).
Basically, the article says that MS will not be upgrading IE until Longhorn comes along, so there is a 2-3 year window (no pun!) in which other browsers can offer a compelling reason to dump IE. Otherwise, we'll be stuck with what Bill offers us and, as it will be so dominant, he may not care much for standards-support.
So, beyond simply offering standards-compliance which most users never notice, what is the killer functionality for a browser to beat Microsoft? Otherwise, we'll all be coding for a MS-specific browser ...
By the way, enjoy the site a lot. I've always felt that 'malarkey' is a much under-used word. If you can just fit 'palaver' in there somewhere, all my linguistic dreams will have come true!