i've read somewhere that many IE CSS deficiencies won't be
addressed in
the new IE release at all. Is this really so bad?
I don't want to see all those pages looking bad in the new IE just
because Microsoft suddenly decided to apply to standards and all
those
old IE-hacks behave awkward now.
...
There are no public releases of what is supposed to be called 'IE
7', hence it is pretty pointless to argue about what it will do. Or
not do. Or might attempt to do.
Right. There are valid strategies to employ, although prediction is
not one of them.
The best strategy I use is: "Only hack the dead."
Some Dead Browsers: Mac IE, Win IE 4-6, Netscape 4-6, Opera 7
Any hacking, delivered to dead browsers in such a way that a
compliant browser with the same feature list will not see the hacks,
ought to be fine. The bugs are known, and the targeting is likely to
be good for life. Assume non-dead browsers are compliant and don't
need hacks until proven differently.
If your hacks target via a bug (e.g., the Mac IE comment-parsing
bug), it is unlikely to accidentally target a future browser that is
not susceptible to it today. If you target via a feature (e.g.,
conditional comments, javascript, etc.), and you properly use that
feature to shield future browsers that implement it, then you are
unlikely to accidentally target a future browser with or without the
feature.
On my team, we currently use the following, included on every page
via server-side parsing:
<link rel="stylesheet" type="text/css" href="/css/merged.css"
media="all" />
<!-- style hacks to bring specific browsers in line with standards
-->
<style type="text/css">/*\*//*/@import url("/css/hacks/
mac_ie.css");/**/</style>
<!--[if lt IE 7]>
<link href="/css/hacks/win_ie.css" rel="stylesheet"
type="text/css" media="all" />
<![endif]-->
The "merged.css" in this case only has compliant code, no hacks, and
no workarounds. It's also 95% of the CSS on the site; we have a
script that dynamically combines, compresses, and caches a variety of
other sheets which serve specific purposes (big sites may have
layout, look, forms, in-page structures, etc.), and thus the name
"merged."
The mac_ie.css only goes to Mac IE, and contains none of the hacks
that apply to that browser but only clean CSS that would apply to any
browser -- but only Mac IE sees it.
The win_ie.css sheet goes to Windows IE5, 5.5, and 6. Because of our
policy to not use a browser's quirks mode (we need some
consistency!), this means that within the win_ie.css sheet we need to
deliver different box models to IE 5.x and IE 6. We achieve this with
the mid-property escape hack:
width:40em; /* all win IE */
w\idth:38em; /* IE 6 */
We used to use JavaScript to give Safari a little help with min-
height, but in the end only needed it so rarely that we found other
hackless ways.
We are now contemplating introducing a "/css/hacks/workarounds.css"
that will be delivered to all browsers. This will help us address IE
7 problems by using compliant code and no hacks (because IE 7 is not
dead), while keeping the main sheet using css "as intended." No hacks
allowed in here, just creative bend-over-backwards CSS (e.g., using a
background image if the content property is not supported in IE7).
If they release an IE 7.1, then we'll adjust our conditional comment
to accept 7.0 and treat 7.0 as Dead. It now gets hacked in the
win_ie.css sheet.
Within the hack stylesheets, which are only targeted to dead
browsers, hacks are ok because the hacks are stable. But in the main
stylesheets, all hacks are forbidden. We used to use "* html" but
this comment[1] makes it look like MS is starting to consider this a
"feature" (due to the clamor of the CSS authors), but since it can't
be used to filter out future versions that use the feature, it's not
a Good Hack.
---------
1. http://blogs.msdn.com/ie/archive/2005/07/29/445242.aspx#445550
--
Ben Curtis : webwright
bivia : a personal web studio
http://www.bivia.com
v: (818) 507-6613
______________________________________________________________________
css-discuss [EMAIL PROTECTED]
http://www.css-discuss.org/mailman/listinfo/css-d
List wiki/FAQ -- http://css-discuss.incutio.com/
Supported by evolt.org -- http://www.evolt.org/help_support_evolt/