That is an interesting point you make. I am wondering (a) why MS has not
updated it and
Why would they? They don't make any money out of it. They make money out of
selling operating systems and development environments. Having realized that
they cannot take ownership of the web (or the "information superhighway" as
they once called it) They have spat their dummy and taken their ball home.
It could also be because of certain lawsuits that have happened. If they
suddenly say "well, IE is actually *not* part of the operating system" ...
(b) what I am missing out on.
There is a class of questions that arrive here along the lines of "it works
in browser X but it doesn't work in browser Y". Invariably either X or Y is
IE and the other one is any of the modern browsers, Netscape, Mozilla,
Opera, ..., take your pick.
The two variations within this class are:
1) It works in IE but not in Y.
This is usually because the author has either used some of the proprietory
crap that microsoft infest IE with or the author is relying on certain bugs
(like the broken box model in IE5 and IE6 quirks mode). In both cases IE has
got it wrong and browser Y is getting it right, as per the specs.
The solution is to first of all validate the HTML and CSS. This should
remove the proprietory crap. The second is to provide a valid doctype (which
is required to validate it anyway) and test with IE6 in standards mode. If
it now looks the same as it does in browser Y then all well and good.
Then go back to IE5 or quirks mode and re-test. If it is broken again then
search the newsgroups for the particular hack required to make it work.
There are hundreds of hacks to make IE work with perfectly valid HTML.
2) It works in X but not in IE.
The author has provided perfectly valid HTML and CSS but has had the
misfortune to choose something that IE simply does not support.
HTML 4.1 has been around for years. So has CSS2. Far longer than IE6. IE
does not even come close to supporting either fully.
If the problem is simply that it does not look the same [1] then live with
it. If the problem is that it does not work at all [2] then the solution is
to not use the nice new (read: years old) feature that IE barfs over.
There is a different set of hacks to cause IE to ignore certain CSS or to
make IE use certain bits but hide those bits from modern browsers. Once
again the newsgroups talk about these all the time and there are dozens of
web sites out there detailing these hacks.
Lurk here and you will find things like:
[1] My round corners don't' work in IE.
This is a spin off from a question asked right here by [KS] on the 5th of
this month: CSS border problem. Round corners on borders work nicely in
gecho browsers but not IE. Oddly enough the round borders also caused the
dashed lines to disappear in gecho browsers.
The point remains though that IE will not do round corners so if you
*really* want them then you have to use images and place them at the corners
of the box (a hack). But wait, there's more: IE has a broken box model, it
is nearly impossible to reliably place images at the corners of a box and
expect them to work in IE6 and IE5.x. The usual hack is to stick the whole
lot in a table, but that is not a good thing at all, and is also a hack.
[2] You may note there is a plethora of stuff coming in at the moment about
slide out or drop down or whatever menus. These are invaribly crafted with
heaps of javascript and so don't work in <guesses/> [3] 15% of the cases.
Now, CSS2 provides a perfectly usable method of realizing drop down/slide
out menus. No javascript, just HTML and CSS, which just about every modern
[visual] browser supports. But wait: this does not work with IE. So, what to
do? Use the nice new (read: years old) CSS and ignore 80% of your viewers or
fall back to javascript hacks? What does your client say?
A lot of questions come in asking how to change the background colour of a
table cell. Invariably the author has (correctly or not is moot) used tables
for layout and has put a navigation link in the cell. The :hover pseudo
class can be use to change the link, "but I want the entire table cell to
change".
IE only supports :hover on links, the <a> element. One either has to use a
bunch of javascript to fiddle with the td's styles onmouseover and
onmouseout (bad) or use hacks like making the <a> element block level so it
fills up the entire table cell.
Modern browsers accept td:hover {...}. Simple. Neat. Works.
[3] Oh, BTW, IIRC IE does not really understand XHTML. It gets away with it
by sort of error correcting it back to an HTML dom.
I mean to be honest, I use IE
most of the time,
That is why you don't know what you are missing.
Being a sheep (as you do when you are from New Zealand), I would actually be
quiet keen to find out on what I am missing out on.
Use a modern browser and look at some modern sites. You will see things that
the authors have put in there specifically for modern browsers and which (if
the author did it right) degrade or simply disappear with IE.
but the problem is that most of my clients have windows + IE.
That is what everybodys problem is. That is why we either produce out of
date web sites or resort to complicated javascript and/or hacks to make IE
display something that is very simple to do with a modern browser.