I Hate Internet Explorer 6 With a Vengeance That Can Only Be Expressed in Arabic
I truly do. IE6 is without much doubt the single crappiest browser in existence, and yet–thanks to Microsoft forcing it on everyone for years–it is used by a majority of people surfing the web. Thanks again to Microsoft for not making it easy for people using XP to upgrade to IE7 (there is no automatic prompt, and they demand to be able to scan your computer for pirated software), most of those users are not changing.
Which means that if you want to design a web page, especially for a business (as I am trying to do), you can’t afford to show an ugly page to a majority of visitors–so you are royally screwed by IE6, forced to work far harder and to accept lower standards for the end product. I wanted to make a beautiful set of pages for my school’s site, so I taught myself CSS and really worked up a very nice design. It looks fantastic in Firefox and Safari on Mac and Windows, and even IE7 likes the way it looks. But IE6 blows it all to hell, making every single design element an excruciating torture to find painfully twisted workarounds, which lead to scatterings of new problems in their wake. I should have seen this coming–IE6 has torpedoed several other of my attempts to build nice web sites, including an attempt earlier this year.
The result is that I am spending 90% of my time working around bugs in that piece of crap IE6. I swear, I am just about ready to buy a plane ticket to Redmond so I can personally strangle Bill Gates.
That said, there are workarounds. One of the many problems in IE6 is that it does not recognize pseudo-elements. If you recall from my tutorial on CSS, you can create new HTML commands–called “elements”–and so define your own styles in a way that can be easily expressed. One that I wanted to use was small caps. The coding is easy: scaps { font-variant: small-caps }. Insert that into your styles and the use of a “scaps” tag will get you small caps. Except in IE6, where you can’t define elements like that. You can re-define elements that already exist, but you can’t create new ones.
That presents a problem for my small caps idea: you either have to add small caps to an existing style (in which case you can’t have the small caps by themselves) or you have to create a class for small caps, in which case it is again necessary to piggyback on another existing style. It seemed impossible to create just small caps without having it go along with something else, so I came up with another idea: hijack an existing style I don’t use. I chose the “u” tag, because it’s bad style to use underlines on a web page–people will think they’re links. So I did this: u { text-decoration: none; font-variant: small-caps; }. In essence, that tells the “underline” tag to subtract underlining and to add small caps–I just turned “u” into a “small caps” command. I could probably do the same with “s” and “strike.”
A bigger problem with IE6 was the lack of support for “position: fixed,” which allows you to set the position for any element–a table, a paragraph, an image–so that it appears exactly where you want it on a page, as defined by distance from top, left, bottom or right by universal units of length. IE6 won’t recognize that, however, and that was a key element in having one part of my site render correctly. This time the fix was not easy, so I couldn’t do it myself. Looking on the web, I found many people who offered various fixes; some of them led to jerky scrolling, but one actually did the trick pretty well. You can see the solution on that page; it’s a bit hard to describe, except to say that it fights fire with fire, using a different IE6 bug to fix the “position: fixed;” bug. Clever. It still leaves me with scroll bar problems I’d rather do without, but you can’t have everything.
Back to work…
Random: just bought the 1Tb time capsule. NEVER have i gotten faster wireless. i wish i had known about airport extreme ages ago!
-Dan
If you think CSS support in IE6 is bad, Luis, you should try JavaScript. Just about every other browser on the planet has a fairly straightforward way of handling things in JavaScript, but IE always has to do it differently. That would be okay if it meant that IE’s way was somehow better, but it’s not—if you’re lucky it’s just different, but usually it’s also worse to boot.
انا اكره إنترنت أكسبلورر 6 مع ان الثار لا يمكن الا ان يكون واعرب عن باللغه العربية
=p
Dan: glad to hear it. I have few complaints about my AirPort Extreme. It just works.
Sako: I shudder to think. It looks like MS was probably the same here as elsewhere: either so full of themselves so as to think that their way was naturally better, or–more likely–that they wanted to establish a unique language that would break everyone else’s software, giving users the choice of doing it the MS way or no way at all, given the 800-pound-gorilla’s iron-fisted grip on the Desktop. So long as MS has the power to sway most people’s choice of what browser to use, the rest of us are victims of their incompetence, hubris, and greed.
K.: I’ll have to trust that that is (a) a genuine curse against IE6 and (b) not obscene. Well, not too obscene.
It is actually your title for this blog entry translated into Arabic (the grammar/style might be a bit off though, I don’t have an English to Arabic dictionary handy so I had to use Google’s translation tool to get a few of the words).