W3C home > Mailing lists > Public > www-style@w3.org > February 2015

Re: [css-tables] Missing definition of table row borders if border-collapse: separate?

From: Axel Dahmen <brille1@hotmail.com>
Date: Tue, 10 Feb 2015 23:26:53 +0100
To: www-style@w3.org
Message-ID: <mbe0n6$jli$1@ger.gmane.org>
> There are some nice layouts here, but I don't think that anybody wants
> to make such drastic changes to the table layout model.

Sure. I'm but proposing a suggestion here and would want to leave the 
evaluation of benefit/importance to others who are more eligible than I am.

>Looks like you're imagining a hybrid between collapsed and separate

Yes, you are absolutely right. That was my mistake when trying to bring down 
my first thoughts. Of course, a property like "table-cell-priority" is 
nonsense here. The same would be achievable easily with simple CSS. The most 
important part of my suggestion instead is that if table-row, 
table-row-group, table-header-group, table-column and table-column-group 
would be accepting the standard box model. border-spacing, however, would 
become obsolete.

Please refer to my following new mock images for references on the issues 
you mentioned in the following:

> Borders all normally take up space (unless you're collapsing
> them) and affect layout, so I'd think that if you have col, tr {
> border:2px solid; } and td { border:3px solid; }, a cell would be
> surrounded by its own borders, and then, on the outside, the border of
> the row and column? Which of them (rows / columns) should come first,
> BTW, and what if they have different style or color? That could
> potentially look hideous, on a general basis.

You're absolutely right. But with simple CSS this can be caught. See image 
#2 for reference.

Or if the programmer intentionally wants to see these borders - he/she 
simply can. See image #1 for reference.

> How should the following be rendered?
> <table>
>     <col style="border:3px solid blue;">
>     <tr style="border:3px solid pink;">
>         <td>x</td>
>     </tr>
> </table>
> Column borders on the outside, row borders on the inside? Or the other
> way around? Or column borders on the outside on the left and right
> sides, and row borders on the outside at the top and bottom?

I would want to leave the decision of what's outer or inner to others. 
However, my personal preference (reflected in my images) is the following:

  \- table-column-group
    \- table-column
      \- table-row-group
        \- table-row
          \- table-cell

Padding, borders and margin would only affect the corresponding sides of 
elements they touch. (I've been trying to be as precise as possible in 
images #3 and #4 to, e.g., reflect the influence on table-column elements 
only to the left/right side of affected child elements.)

For reference, see images #3 and #4 in the album.

> Together with border-spacing, you'll end up with a constantly
> over-constrained situation here. That could of course be fixed by
> introducing an 'auto' value for border-spacing, and require that it
> always be 'auto' if the author wants borders, padding and margins.

That's why border-spacing should become obsoleted. table-cell margins would 
perfectly do.

> Also - what about rowspan > 1?

Good question! My consideration is that table-columns and table-rows are not 
concerned with rowspan/colspan. So they should just ignore these. See image 
#4 for reference.

Axel Dahmen 
Received on Tuesday, 10 February 2015 22:29:31 UTC

This archive was generated by hypermail 2.4.0 : Friday, 25 March 2022 10:08:51 UTC