On Oct 13, 2005, at 12:55 AM, Geoff Pack wrote:
If the IE team fix the CSS hacks and also fix the bugs the hacks are used to work around (as I think they originally mentioned they would), then the hack users will be fine.

And if not, then it's no worse than having to update your conditional statements anyway. Because I bet you don't yet know which of your conditionals will have to change to <!--[if lt IE 7]> and which to <!--[if IE]>

This is only true in certain circumstances when the hack does not make use of a deliberate feature that is not changed. For example, this scenario is common:

    - IE 5.x has a natural box model problem
    - put IE 6 into quirks mode so it emulates this problem
    - use * html to fix the problem in both IE5.x and IE 6

Now, we know that IE 7 will support quirks mode and will not support * html. New problem. In fact, a problem made more difficult by deliberately putting IE 6 into quirks mode, perhaps with a comment before the DOCTYPE, because this is a deliberate feature in IE. How many of these developers put that comment in a server-side include function, so they can remove it easily? My guess is none, even the ones that put all of their CSS calls in some sort of include. A better, more forward-thinking approach would be:

    - IE 5.x has a natural box model problem
    - IE 6 and IE 7 in standards mode do not have this problem
- use conditional comments with [if lt IE 6] to fix the problem in IE5.x - use conditional comments with [if lt IE 7] to fix other IE 6 problems - use conditional comments with [if lt IE 8] to fix other IE 7 problems

Then you place whatever is needed into whichever stylesheet is appropriate.

As a general rule, "Only hack the dead." The only safe bug to exploit is one that is fixed in ongoing generations of the product, or will never be fixed because the product is dead. All other necessary targeting should use features, not bugs. (Some may ask what the difference is. The answer: features are supported.)



On Oct 13, 2005, at 7:27 AM, Francesco Sanfilippo wrote:
That's not really true, Alan.  A site without CSS hacks does not
necessarily have to be ugly.  I develop table-less ASP.NET sites using
CSS and I have never used a single CSS hack or conditional comment,
yet my sites are still clean, good-looking and functional in the
leading browsers (IE, FF, Safari, and Opera).

However, if you read about the Slashdot upgrade problem in the blog post, you'll see a point that is tough to navigate around without targeting browsers:

1. HTML validator requires a legend tag inside a fieldset (although I can't find that requirement in the spec) 2. HTML spec does not declare whether an empty element should render or not (according to the blog post -- not sure about this)
    3. IE and Gecko choose to render empty elements differently.

It would seem to me then that without targeting browsers you cannot achieve the goal layout in both of these browsers unless you drop all fieldsets, forms, etc.

The spec is not complete. If you bump into one of these un-specified areas, then it seems your layout is subject to the will of the browser makers. Sometimes this is ok. Sometimes this means the client goes shopping for a new developer.

--

    Ben Curtis : webwright
    bivia : a personal web studio
    http://www.bivia.com
    v: (818) 507-6613




******************************************************
The discussion list for  http://webstandardsgroup.org/

See http://webstandardsgroup.org/mail/guidelines.cfm
for some hints on posting to the list & getting help
******************************************************

Reply via email to