Sorry for the long post, but I've been thinking about this for over a
year now, and it's been asked many times before without a viable answer
that is actually reliably workable in a production environment. 

 

The bottom line is, I still have to resort to using tables for
grid-based layouts, because I have had no luck making <div> tags work in
certain circumstances.

 

Particularly I am referring to "3x3 grid" layouts where I need to have
repeating backgrounds in a tic-tac-toe type of a setup:

 

TopLeft  - TopMid  - TopRight

MidLeft - CENTER - MidRight

BtmLeft - BtmMid - BtmRight

 

This the classic "table-based layout" on which Fireworks, ImageReady,
Photoshop, and zillions of HTML3 and below sites are based. 

 

I have read dozens if not hundreds of posts on various forums, tried
various techniques, and even spent hours following the spec:

http://www.w3.org/TR/CSS21/tables.html#table-display

creating a collection of nested <div>s with the proper CSS to try to
replicate what I can do in seconds with a table, to no avail.

 

e.g.

 

<div class="csstable">

  <div class="toprow">

     <div class="topleft"></div>

     <div class="topmid"></div>

     <div class="topright"></div>

  </div>

  <div class="midrow">

     <div class="midleft"></div>

     <div class="content">Body Content Goes Here</div>

     <div class="midright"></div>

  </div>

  <div class="btmrow">

     <div class="btmleft"></div>

     <div class="btmmid"></div>

     <div class="btmright"></div> 

  </div>

</div>

 

No matter what I try, I can't get the above working like I can with
table, tr, td. Configuration. Not only is it 20% larger HTML, but I have
to jump through hoops with CSS and spend hours fiddling with it and
eventually failing and re-doing it with a table anyway. For example, one
of the most frustrating things is that the "midright" column won't flow
down the page to match the height of the content area without adding
additional markup, reversing the order of the columns, adding
Javascript, or other annoyances. Another example is a rounded-corner
design with dropshadows around the edges of a floating "soft panel" in
the center of the page. I just haven't found a way to achieve these type
of layouts with CSS, though it seems like it ought to be possible.

 

I know you can do amazing things with CSS, and I do strive to remove all
style from the markup, but it seems like 98% of the world doesn't care
(particularly the client) as long as their page "works." 

 

Is it that the browsers don't support what the CSS is supposed to do
yet? 

Or am I incorrect in thinking that display:table; display:table-row; and
display:table-cell; etc., are not supposed to help me layout pages... 

Or am I just a fool for trying?

 

In short, what are all these for, if not layout?

 

table    { display: table }

tr       { display: table-row }

thead    { display: table-header-group }

tbody    { display: table-row-group }

tfoot    { display: table-footer-group }

col      { display: table-column }

colgroup { display: table-column-group }

td, th   { display: table-cell }

caption  { display: table-caption }

 

 

______________________________________________________________________
css-discuss [EMAIL PROTECTED]
http://www.css-discuss.org/mailman/listinfo/css-d
List wiki/FAQ -- http://css-discuss.incutio.com/
List policies -- http://css-discuss.org/policies.html
Supported by evolt.org -- http://www.evolt.org/help_support_evolt/

Reply via email to