On Mar 23, 2007, at 18:21, Vincent Hennebert wrote:
http://www.w3.org/TR/REC-CSS2/tables.html#table-layers answers that.
image should help you understand. An example: take the before
the first cell of a table header. The elements that influence the
resolved borders are: table, column-groups if applicable, the column,
table-header, the first row in the table-header and the cell
the borders of these elements have to be combined. That's what's
(!) implemented in CollapsingBorderModelEyeCatching (for
That doesn't tell anything regarding page breaks!?
Hèhè, that always tends to happen with references to CSS. :-)
If the table is broken across several pages and the header shall be
border-before for table and table-column play again in border-
for the second and following headers?
YES! Not only border-before even, I think, but that is open for
interpretation. The column's border-before *and* after need to be
considered for each body, header/footer that appears on a given page.
One could also argue that the column's span the entire table for each
page, so the column's border-after does not need to be considered for
the header's last row, for instance.
Apart from that, there is the tiny note, of course, that we're
talking about hypothetical situations, in which border-conditionality
is overridden for all table-elements.
The default value being "discard" makes the interplay between border-
collapse and border-conditionality actually much simpler than it
seems at first...
- when we break at a grid line, should the two rows meeting a the
count in border resolution? Or only the row before for the
border-after at the end of the page, and the row after for the
border-before at the beginning of the following page?
I would go with that latter.
Fine (that means that the border may potentially be different at the
bottom of the previous page and at the top of the next page).
Only if you have no header/footer. If there is a repeated header/
footer, then the border will neatly be the same for all pages. If you
have no header or footer, then overriding border-*-
width.conditionality on the table or table-body is enough to prevent
agree that those two latter cases are not described by the spec?
As far as I remember, yes, since XSL-FO refers almost entirely to CSS
(which, because of its correlation with HTML, has no concept of page-
breaks). This still leaves some room for the implementors FTM...
- when we break at a grid line, should the entire border appear
page, or the higher half at the bottom of the first page, and the
lower half at the top of the following page?
I would also go with that latter.
No, the entire border has to be painted. This is
BorderProps.COLLAPSE_OUTER/COLLAPSE_INNER as used by the
the BorderProps class.
So the grid line at the page break would have two borders, one at the
bottom of the page, one at the top of the next page?
That's fine for me, but again I think it's specified nowhere.
Hmm... not exactly. Think of the part of the table on one page as an
independent subgrid, that has nothing to do anymore with the
preceding or following subgrid. It is the gridline which is split in
two, and each of the new gridlines will have one fully resolved
border. In a sense the border is duplicated, yes... :/