Forum Moderators: open

Message Too Old, No Replies

How IE promotes BAD design

...and how to avoid it

         

DrDoc

5:24 pm on Oct 5, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



More often than not, the main reason why something "doesn't work" is related to Internet Explorer's crappy CSS rendering engine.

Here are some pointers and ideas on how to avoid getting shocked, should you decide to view your page in a "real" browser ;)


Don't use IE as your default browser

When you design/develop a new page, or try out a new design/layout - do not use IE as your primary browser. Make the page work in a good browser, such as Mozilla, first - then tweak it a little so IE will understand how to render the page as well. Make sure your tweaks don't cause the page to break in Mozilla/Opera ;)


Use a full DOCTYPE

Always, always use a full doctype, whether you're worried about validating your pages or not. The doctype serves a far greater purpose than validation. You will be surprised how much a page layout will change depending on whether you use a full (and valid) doctype or not. Again, IE is the black sheep. Layouts can be stable or break depending on the doctype.

Unsure about which doctypes you can use? Check W3C's list of valid DTDs [w3.org]


Realize that IE does not render CSS correctly

On this forum I have seen the following numerous times:

:link {
text-decoration: none;
}
:hover {
text-decoration: underline;
}

Ok, that looks ok, doesn't it? There's no problem with the first selector. It will do what you expect it to do - remove the underline on links. However, the second selector will cause all elements to be underlined when you move the mouse over them.

Why? According to the CSS "rule book" :link, :hover, :active, etc can be applied to any element. Right now, the anchor tag is the only element to which :link and :visited can apply. But, you can hover all elements. Again, IE is the only browser that doesn't get this. IE will not apply any :hover rules, unless the element is an anchor. But all good browsers will... and they are right.


IE 6 is not much better than IE 5

IE 6 was supposed to be fully "CSS1 compliant". Is it? No! Basically, the only things they fixed were:
• correct boxmodel rendering (if using a full doctype)
• fixed rendering bug which was exploited in the boxmodel hack

...and, that's about it. IE is not CSS1 compliant. It doesn't support some of the most basic CSS rules. You would think that something that has been around for over seven years would be implemented by now, but it's not. Not in IE. But it is in most other browsers.

So, when you read the CSS "rule book" on W3C's Web site [w3.org], keep in mind that even though something is supposed to render a certain way, that doesn't necessarily apply to IE ;)

Reflection

6:59 pm on Oct 6, 2003 (gmt 0)

10+ Year Member



The which browser is better and what percentage of people use browser X really isnt important to this topic.

Bottom line is by coding and testing in a browser such as Mozilla rather than going the IE route, you will be saving your time on your way to creating pages that work across all browsers.

And while you are saving your time you will have the added bonus of writing correct html and css.

DrDoc

7:32 pm on Oct 6, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



In an attempt to steer the thread off a path that would undoubtedly lead to another browser war...

Quirks mode

Need I say more? Why would you even think to implement something that will trigger "quirks mode"? However, contrary to most people's beliefs - quirks mode does not mean that IE6 will now start rendering pages the way IE5.5 did. So, what does it mean?

Quirks mode simply means that IE6 will simulate the incorrect boxmodel rendering. Period.

Furthermore, the IE dev team also saw it fit to implement a couple bug fixes. (Good for them! Now, what about the rest of the bugs?!) "Well, that's good, isn't it?" Not really...

While they implemented a "quirks mode" trigger (still can't get over that!) they patched the rendering bug that caused the boxmodel hack to work. So, here we are with a broken boxmodel, but the hack no longer works! Way to go, fixing one problem while causing two new ones!


Standards suck!

...seems to be Microsoft's take on, well, everything! They think they are above the law, they believe they don't have to answer to anyone.

That's why they have implemented HTML tags that don't exist (do I need to say <marquee>?), JavaScript functions that don't exist (<cough style="type: faked;">document.all</cough>), and CSS functionality that is not part of any standard (vague: expression();).

Is this helpful? Not really... While the CSS expressions may be the only really neat thing coming out of M$'s gold plated trap, it only serves one purpose - fix something they broke in the first place.

So, instead of truly solving the problem, IE is implementing non-standard fixes that are likely not to work as you expected, unless hidden from other browsers.

And, I won't even mention M$ Office proprietary CSS. It is uuuuuuuuuuugly!

SuzyUK

7:49 pm on Oct 6, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



While they implemented a "quirks mode" trigger (still can't get over that!) they patched the rendering bug that caused the boxmodel hack to work. So, here we are with a broken boxmodel, but the hack no longer works! Way to go, fixing one problem while causing two new ones!

Did they really _implement_ that quirks mode trigger, or did they just get it wrong again?

And further re: the box model hack.... never liked it anyway ;) there are better ways to get around it. IE conditionals for example..which is M$'s way of really patching up!

However although I don't want to have to use them.. I now consider them the best way out...(OK so that relies on me knowing the calculations in the first place... but so do the various hacks)..

<rant>I hate hacks for something that should work in the first place!</rant>

So again they are taking us (the ones who know they're wrong!) and giving us a way out, which will ultimately force us back to picking faults with the other browsers and so the myth will continue..

Suzy

DrDoc

7:54 pm on Oct 6, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Did they really _implement_ that quirks mode trigger, or did they just get it wrong again?

CSS "enhancements" in IE6: [msdn.microsoft.com...]

[edited by: DrDoc at 8:05 pm (utc) on Oct. 6, 2003]

DrDoc

7:56 pm on Oct 6, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Two additional CSS properties are supported: min-height...

Remarks
With Internet Explorer 6, this property applies only to td, th and tr elements in fixed-layout tables. Auto-layout tables are the default. To create a fixed-layout table, set the tableLayout property of a table element to fixed.

Yeah, right! Wow, what a "fix"! I'm so glad you "implemented" min-height! ;)

mattur

8:08 pm on Oct 6, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



too many people fall victim to IE's "forgiving" nature and become frustrated or confused when they find out that the other browsers are less "forgiving."

ALL browsers to date have been forgiving of errors. It was/is an essential factor in the popularity of the web.

I would imagine that people who fall victim to Moz's better standards compliance (;)) may become equally frustrated or confused when they discover their "correct" code goes wobbly for 95% of their audience.

The frustration and confusion in each case is because browsers render pages differently. Mainly using Moz or Opera etc to test doesn't change that. Unless of course you are going for w3c-compliance over audience-compliance... ;)

DrDoc

8:10 pm on Oct 6, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



ALL browsers to date have been forgiving of errors. It was/is an essential factor in the popularity of the web.

...and one of the main factors to decreased usability.

may become equally frustrated or confused when they discover their "correct" code goes wobbly for 95% of their audience

Never been a problem ;)
At least this way you have a shot at getting it to work in 100% of the browsers, whereas otherwise your goal is 95% at best :)





I'll be quiet now...

Farix

8:29 pm on Oct 6, 2003 (gmt 0)

10+ Year Member



Mattur: I really have to wonder if you are really that dense. What gives you the idea that markup that works in a stricter browser, such as Mozilla, will not work or is mysteriously "unstable" in the more "forgiving" IE?

mattur

8:32 pm on Oct 6, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



You have an equal chance of 100% coverage: it depends on other things. I could use the same reasoning to say your goal is 5% at best. Obviously this is illogical!

Reflection

8:35 pm on Oct 6, 2003 (gmt 0)

10+ Year Member



I would imagine that people who fall victim to Moz's better standards compliance () may become equally frustrated or confused when they discover their "correct" code goes wobbly for 95% of their audience.

The frustration and confusion in each case is because browsers render pages differently. Mainly using Moz or Opera etc to test doesn't change that.

Your missing the point. If your goal is to make pages that are accessible and work correctly in everyones browser, you will save more time and effort by testing in mozilla and then adding a few fixes for IE rather then doing it the other way around. Try it you might like it :).

Unless of course you are going for w3c-compliance over audience-compliance...

Contrary to popular belief these are most often the same thing.

mattur

8:44 pm on Oct 6, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Farix: I just can't see a clear benefit, and to be honest I suspect this discussion is driven more by standards-fanaticism than pragmaticism. Calling me dense doesn't help ;)

Reflection

8:50 pm on Oct 6, 2003 (gmt 0)

10+ Year Member



I just can't see a clear benefit, and to be honest I suspect this discussion is driven more by standards-fanaticism than pragmaticism.

Try it for yourself. I used to test in IE6 and then work through the other browsers. That was the way I did things. I was quite frankly amazed at how much easier it is to go the other way around. It saves time and a lot of headaches. Whether your 'pro standards', 'pro mozilla' or 'anti-microsoft' it really doesnt matter. If your goal is to have pages that work in all browsers, its simply easier.

mattur

9:01 pm on Oct 6, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Well I don't need to, since I don't usually have any problems... ;) What are these Moz/Opera-only problems you mention?

Reflection

9:11 pm on Oct 6, 2003 (gmt 0)

10+ Year Member



Well I don't need to, since I don't usually have any problems..

So you write perfect pages that work in every browser without ever testing them, thats pretty amazing.

DrDoc

9:14 pm on Oct 6, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Hey, maybe it's time to stop arguing back and forth which way is the best? Seems like everyone has made their point on that part of the topic.

As long as the pages work - that's all that matters :)

mattur

9:21 pm on Oct 6, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



As long as the pages work - that's all that matters

Agreed! :)

SuzyUK

11:41 pm on Oct 6, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



OMG Doc I wouldn't have believed that without reading that link!..
CSS "enhancements" in IE6
that's incredible.. or is that incredulous?

mattur it's a good job you keep changing your mind.. it just keeps getting worse ;) in fact I'd stay on the fence too if I were you.... cos.... it ok you don't want to know

Suzy

joeblakesley

11:40 am on Oct 7, 2003 (gmt 0)

10+ Year Member



I was just checking up if there was anything on Eola and generally lurking but I though I would post a couple of points here.

Something that I think is being missed when saying that MSIE is less strict (which BTW is generally true (though sometimes the opposite is true) and is also IMO a Bad Thing) is that in general MSIE also includes less features of HTML than the the other browsers; therefore, if you want to include a lot of "cool" features you might find they will work in, say, Gecko but not MSIE - this is another reason, if you are not a strict follower of W3C standards (but at least a bit of a get-things-to-look-right-in-the-different-browsers designer) to use Gecko to test first (maybe after Lynx) then Opera, KHTML, MSIE, &c.

Anyway, the main reason I was posting here was to do a shameless plug of a post I posted in a thread a while back (regarding getting round MSIE's bad design): post 27 at [webmasterworld.com...] .

This 48 message thread spans 2 pages: 48