W3C home > Mailing lists > Public > www-style@w3.org > June 2007

Re: Stylings only possible with Tables

From: James Elmore <James.Elmore@cox.net>
Date: Tue, 26 Jun 2007 13:49:35 -0700
Message-ID: <46817BDF.1000508@cox.net>
To: www-style@w3.org

Spartanicus wrote:
> 
> Sorry, none of what you has made it any clearer to me what problem you
> are trying to solve, nor how you want to solve it. Note that I may have
> skipped some of your earlier messages in the thread. I seem to recall
> seeing messages displaying a screen full of quotes due to the previous
> message being quoted verbatim, on such occasions I typically hit "next"
> straight away.

I will try to answer in a manner which meets your requirements by remaining 
brief. I am trying to solve multiple problems.

Problem 1. Users have asked for certain features, many of which relate to the 
difficulty of styling and layouts and the requirement that tables be used for 
them, even when what the users need is much more basic than tables. I have 
proposed allowing styling (and some layout) features be allowed for block 
elements in general which currently only can be done using tables. I can repeat 
the list, if you want.

Problem 2. Developers have expressed consternation about the difficulty of 
implementing some other proposed CSS features. My proposal contains (mainly) 
style features which already exist and for which code can be copied or called 
without major reworking of existing browsers.

Problem 3. Designers (and specification writers) have complained how difficult 
it is to understand (or explain) concepts. I propose making the concepts of 
margin-collapse, border-overlap, etc., available in all block elements, along 
with styles to control them, so they can be turned off, if desired. I believe 
that the basic concepts are not too hard to understand, but the fact that 
elements act differently inside a float, in a line of text, and in a table, and 
that the user (and the viewer) has no control over these differences makes them 
seem hard. If the CSS Box Model Specification can simply explain, once and for 
every other element, how margins work, users will 'get' it. Or, they can turn 
the 'magic' off for their designs.

Problem 4. Many of the CSS recommendations are waiting review, approval, or 
implementation. This small set of proposals could provide a jump start for 
adding features. Once some features are available and used, CSS gurus can see 
which features cause problems, and fix them. They can also see which features 
are used most enthusiastically, and add other, similar feature to future 
specifications.

Problem 5. (This relates to all the rest.) Trying to separate a document's 
content from its styling is a good thing, for users, developers, specification 
writers, and CSS gurus. I believe the combination of styling and content forced 
on all of us by tables is making everybody's job harder and would like to see 
the style and layout features commanded by the table element available without 
declaring the content to be a table. (This includes implicit declarations like 
'display: table;'.) If the two (style and content features of tables) were 
separate, they would be easier to use, to implement, to understand, to explain, 
and even (possibly) to get passed as new versions of specifications.
> 
> 
> Most users consider tables relatively easy to use for creating a layout
> grid. The complexity lies in the implementation, but that work has been
> done for existing clients.

The complexity lies in the fact that the styles imposed by tables are only 
available within tables. To create a grid in HTML/CSS, users can use tables.

What if users want adjacent objects' borders to overlap? They must use tables.

What if users want to match the sizes of objects which are not in a table? They 
must use tables.

What if users only want one column? Only one row? What if users want normal 
blocks, with margins, padding, etc., but want them aligned in a grid? They must 
use tables.

What if users have trouble memorizing the border-overlap rules of tables, or 
they want to change them? No choice, use tables.

I will (with difficulty) stop. There are thousands of style problems which can 
only be solved by the use of tables. Tables should (according to the HTML, 
XHTML, and CSS specifications) describe document CONTENT. The current situation 
forces users to twist their documents and use tables for STYLE and LAYOUT. Yes, 
designers can use tables for layout. They should not be forced to use tables 
just to overlap borders, match sizes, align objects, etc. Styles should allow 
these controls, not the HTML element <table>.
> 
> 
>>My list of these features includes: captions, 
> 
> 
> Captions are not a layout feature, they signify a relationship with
> other content. IIRC the HTML 5 proposals contain solutions for this.
> 
The only solution I found in the HTML5 specification was for 'legend', which is 
not as useful as captions. Ignoring the difference in (proposed) names, I 
recognize that there are content implications in the proposal to support 
caption/legend for all box elements. I can't transfer the discussion to the HTML 
group as I'm not a member.

There are still style implications, such as allowing 'caption-side' for all 
block elements. That is why I included it in my proposal. It is not even a major 
stumbling block (for users, implementors, specifiers, or other gurus) in this 
proposal. Ignore it if you must.
> 
>>margin-collapse 
>>controls, 
> 
> 
> I don't know which specific problems you are referring to. IMO the
> collapsing margin rules in CSS2.x are horribly complex and difficult to
> implement correctly, consequently quite a few implementation bugs have
> resulted from this.
> 
> Occasionally absurd behaviour can result from spec compliant collapsing
> margin behaviour that can cause great confusion amongst authors.
> Specifically; as specified the top margins of 2 elements are supposed to
> collapse when they are adjacent, this is absurd imo. Only bottom-top
> margins should be able to collapse. But adjacent top margins collapsing
> is how it has been specified and now implemented.

Exactly! Because the behavior can not be controlled, only implemented, users 
have trouble understanding it. Because the behavior is different between flows 
(inline-block), floating blocks, and blocks inside a table, it is even harder to 
understand (document, implement, specify, etc.).
> 
> 
>>border-overlap controls, size controls for groups of blocks, and a 
>>simple grid-like layout.
> 
> 
> You have that with tables. I don't hear many others complaining about
> how difficult tables are to use for layout, quite the contrary.
> 
> Regardless of whether or not a new CSS method allows implementation
> algorithms to be reused, any new CSS mechanism would at best take a year
> to specify, about five years to be implemented and it will take at least
> another five years before the use of legacy browsers has diminished
> enough before such a mechanism can realistically be used by authors.
> 
> And I'm still no clearer on what benefit you expect from such. 
> 
Sigh. Maybe I attempted too much. Once more, briefly:

Style and content should be separate. (Long list of reasons available, but 
excluded.) Using tables for both violates this precept and causes problems for 
designers, implementors, documentors, non-visual browsers, general 
understanding, ... I propose we allow CSS to control the style features (in 
block elements in general) which previously have only been available using 
tables. (List of proposed features available, but excluded.)

Also, the proposal is deliberately limited. If small steps can be taken, we can 
start moving again toward the improvements we all want in CSS. (At least I hope 
we all want improvements; after this, I'm not sure.)

-- 
James Elmore
22162 Windward Way
Lake Forest, CA 92630
Home	(949) 830-9534
Email	James.Elmore@cox.net
Received on Tuesday, 26 June 2007 20:49:48 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:51 GMT