> I read that, and I know that issue, but I can't fathom myself where
> you'd take the extra height from if this rule wasn't there: the parent's
> parent, and if so, how much would you take, and what would the extra
> height be calculated relative to.

The easiest answer to that question is another question: where does the
space come from in HTML? As I understand it, the browser traverses up the
tree until it finds an element whose height it knows. As a result, it's more
complicated to render HTML than CSS. It's my understanding that this is the
reason why the spec doesn't allow for it: to keep rendering simple.

At a fundamental level, I think the folks who made the CSS spec made a bad
decision: I think you should make things easier on the people who use a
computer. The computer is there to serve the people after all. On a
practical level, the time it takes to render even a complex layout of nested
tables is trivial (well, it is in anything other than Netscape 4). Even if
this wasn't the case, Moore's law would have long since made it so.

> Went up to my retreat deep in the Ox Mountains and meditated on a
> solution. Then, just as it came to me in a flash of blinding light, I
> remembered somebody'd already solved this particular problem before:
> 
>      http://www.redmelon.net/tstme/3cols2/

That's a great example. That's far better than any I found (I must of looked
at 50 different examples before sending my last message). Nevertheless, it
still suffers from some of the issues we've been talking about.

Specifically, the widths of the left and right columns are specified in
several locations. They are specified as the border for the outer class
(similar to how margin was used in the example I posted). They are also
specified in negative margin values for the left and right columns
themselves.

The latter doesn't bother me so much because the left column already needs
to know its size. So, specifying the size as a width and negative margin
value isn't too bad. However, having to make other elements cognoscente of
the column's size is a more serious violation of the principle of
orthogonality. Nevertheless, it goes a long way towards mitigating those
issues.

There are also a few extra divs and classes in there (most notably the
separation between inner and outer). That's not a big deal since the tr's
and td's in the table example even that out. The style sheet code makes
their example at least 3 times as long as the one I posted (I actually
rewrote their example with as little code as possible before posting just so
I would better understand it), but it goes a long way towards separating
presentation from content.

All in all, that's a pretty good example. I still think CSS is screwy in
this regard, but at least there are workarounds.

Ben Rogers
http://www.c4.net
v.508.240.0051
f.508.240.0057


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Special thanks to the CF Community Suite Gold Sponsor - CFHosting.net
http://www.cfhosting.net

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:188538
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to