I'm posting this part of the discussion to the mailing list because it
is of general interest.
Martin Kolar?k wrote:
>
> But as I understand, the code maintaining tables is different
[[[from the code managing "content:attributes();"]]],
> so the same-appearance behaviour in tables has different cause.
Not really. The desired behaviour in XXE is: inline-blocks,
inline-tables and inline "content:attributes();" must be layout as
*narrow* as possible. This leads to this: in the case of inline
"content:attributes();", rows are wrapped. The rows of a Table gadget
cannot wrap. The rows of a Form gadget (generated by
"content:attributes();") can wrap.
> Inline tables, when the text and elements are appended
> into cells, expand columns width, exactly as one expects
> But, if the cell is removed, or if spanning is changed, the
> cells of table shrink and become narrow. And after repainting (or, of
> course, reloading) the table is recomputed correctly.
Note that proper relayout of the *whole* table after some *local*
changes (ex. spanning of a cell is changed) cannot be done without a
style hook.
> Should I send you my CSS and DTD for tables? They are very similar to HTML
> tables (only the extended formatting like colgroup etc. are replaced in my
> case with another tags for my convenience :-).
After playing with "display:inline-table;", I've not noticed any buggy
behaviour. Just the usual harmless inconstency: redrawing with Ctrl-L
gives a different layout from the layout resulting from incremental
changes.
One thing that might help you is to give inline table cells a minimum
width. This is done in the CSS by using the standard width property.
XHTML (partial) example:
---
table {
display: inline-table;
}
th, td {
width: 20ex;
}
---
If after adding "width:NNex;" you are still not satisfied, please
explain why and please send me your CSS, your DTD and a XML instance
using the DTD and the CSS.