Hello list, my problem is a bit of a theoretical nature and requires quite some explanation, so there's a quite verbose explanation of what I seek.
First of all, let me tell you that I am one of _them_. I'm a programmer, not a graphic wizard, nor a designer. And conversely, what I do and put on the web would only serve to show how it's not to be done. Lucky me, few things I do have a visual appearance. But my current work does, and it's what leads me here. I have a quite complex piece of software, that takes models (database schemas, workflows, mask descriptions) and creates a web application out of it. These applications are generally company-internal webapps and nothing that is served to a potentially huge crowd. Still it is, from the point of view of an user, a normal web site/application. The significant part of this software is, that the application developer building the web application, has fewer control over the appearance of the web application. The html code is generated, not written by a human. It must be styled by CSS and CSS alone, influencing the html is not possible. Good you may say, that's how you should use CSS - HTML for structure, CSS for style. Alas, as it is the fault of many, I excessively used invisible tables to layout the elements, because I simply didn't knew better at the time. It works all fine, it layouts fine, but if you want to start applying styles, the problem begins. The place where the relevant objects lie is probably somewhere between 12 and 20 levels deep down the DOM tree. There's basically a invisible table for everything, and in order to not move stuff ahead, lots of border-collapses in the default CSS to prevent those 1px indentations the invisible tables create. Now, the system works, as I said and lots of applications have successfully been developed with it. However now I am in the process of redesigning it, make it easier to work with, and one of the shortcomings is this excessive use of tables. So I went out to see if and how I can do it better. And I quickly realized that the amount of css I knew was less than the tip of the iceberg. I want to get rid of these structural, invisible tables. So I stumbled upon the zen garden, bought a book or two and am currently converting to css-ism. However, I don't see a solution to a particular problem I have already solved with the table, but cannot see a solution with css. Basically the problem of how to replace the equivalent of a "colspan". You see, I have structural elements called "sections" and "rows". Any object (mostly form-input elements in these business applications) just placed on a "mask" appear one below the other. If you put a row into the mask and then the objects into the row, these objects are layouted horizontally (instead of vertically). So far so good, I can do that. Now enter sections. Sections don't do anything different, unless they contain rows. If so, they align the objects within the rows according to each other. That is to say, they enforce that for example the labels of the second object in the first row is on the same column as the label of the second object in the second column. It also creates a colspan, for example if the first row contains 2 objects and the second only one, the second row's object is given a colspan, so it can take all of the space. Example: Labels of objects are always in the same column: Row1: | label 1: | [input1 ] | label 2: | [input2 ] | Row2: | Biglabel that | [input3 ] | some other thing: | [input4 ] | | breaks line: Row3: .... Rows with different number of elements are layouted like this: Row1: | label1: | [input1 ] | label2: | [input2 ] | label3: | [input3 ] | Row2: | label4: | [input4 ] | Now I've been searching a bit of course and I've seen all the layouts for 3 Column CSS designs and such. But remember, all these pages are generated by the system. No human touch involved. I don't know that I can put the second column 100px left because I don't know in the first place that the first column is 100px wide. So I can never use absolute pixel offsets. At the moment I process the rows, I do know how big the span is going to be, so I could emit different css-style names for different behaviour. But how do I go on in the CSS to make this right ? How do I ensure that the label parts are always below each other for all rows within one section, when I don't know in advance wheter I'll have at most 2 or 3 or 6 columns? Is this actually possible to obtain currently with the CSS available in the currently used browsers (without the use of some javascript in CSS hackery ? ) ? I've seen the variant for a thumbnail photoalbum that is liquid and flows around if the browser window is smaller. This I cannot do. If I have 4 objects in a row, I have to have 4 objects rendered in a row. I cannot break around after 3 because space ran out. The structure is preset and I have to realize it. Anything I've come up on so far has dealt with a webpage you have and can control, but not with such a scenario where you simply don't really know in advance what the output is, how many columns there will be and so forth. So the main question is, can I remove my structural table that lies around each "row" and replace this with a CSS neatly wrapping some div's, or should I better keep using the table until CSS2/3 and better tools become usable ? Note that I have far more invisible structural tables, not just this one. But this is the only one I don't see a way of easily replacing and it is very central because it controls the main layout of the masks displayed to the user. Hopefully my explanation is sufficent to describe what I seek, if not, just ask for a clarification. I could also provide a sample page, though believe me, you really don't want to take a close look at that HTML. In any case, thanks for any pointers and hints -- C U - -- ---- ----- -----/\/ Rene \/\---- ----- --- -- - ______________________________________________________________________ css-discuss [EMAIL PROTECTED] http://www.css-discuss.org/mailman/listinfo/css-d IE7b2 testing hub -- http://css-discuss.incutio.com/?page=IE7 List wiki/FAQ -- http://css-discuss.incutio.com/ Supported by evolt.org -- http://www.evolt.org/help_support_evolt/