**In regards to my rule below --use tables when you want tables--, I
always try layout="none" in as many groups as possible (particularly
vgroups, since they are usually equivalent to default flow.
I just wrote up the following for a WRC Investigation log entry, and
since I've been promising this information for a while and it is
appropriate for this thread, here it is. This is all based on
documentation and Eric Meyers book and websites/blogs and so on, as well
as information gleaned from the ie7-js project
(
http://code.google.com/p/ie7-js/). Maybe we can recruit Eric to join
the Zen Community, or to write an O'Reilly book on Zen CSS!
=====
Zen Applications may be converted to use non-quirks mode with browser
independent layouts. I have used the following approach to create
layouts that work for IE 6,7,8, FF 3, 3.5 (why bother with older FF
versions since the FF user base is able to upgrade?), Safari, and
Chrome. So with the caveat, that many of the built-in components assume
browser quirks modes and use some user agent sniffing, and will
therefore break, the following may be used for your "killer" pages.
The technique involves removing all spacer tags, and using layout="none"
or layout="customClass:layoutMethod" everywhere that you do not actually
want an extra HTML table, and using the HTMLDTD page parameter (to
trigger non-quirks mode). The server-side layout manager horizontal and
vertical layouts use html tables, so the easiest way to rid yourself of
these is to use layout="none" or use custom group components that
override the default value of this attribute.
I use the document.compatMode JavaScript property to debug the page to
find errors that cause browsers to go into quirks mode, but from here it
becomes an exercise in standard CSS techniques. From non-quirks mode and
without extra tables, the only CSS Hacks that I use are conditional
comments from IE LT 7; for this I use css expressions(dynamic
properties), due to the fact that IE 6 does not support resolving
competing position constraints. [The expressions are not too difficult]
The trick of course involves any custom components or %ZEN library
components that use tables extensively, it may be necessary to rewrite
some of these or fall back to quirks mode for some pages. With
non-quirks mode, however it is generally easier to grab certain public
widgets or widget libraries and adapt them for use in Zen. And when
rewriting any library component to use no or fewer tables.
~Derek
Meena wrote (10/30/09 10:04 AM):