Chris Bowditch a écrit : > Andreas L Delmelle wrote: > > <snip/> > >> >> The Rec in all its glory! :) >> I wonder what this means for tables that don't have a block-container >> parent. Note that, since a block's b-p-d can't be specified, that >> leaves only block-container as a possible and reliable base 'block- >> level FO that generates the closest area ancestor'. If there is no >> such block-container, the behavior of percentages would again be >> undefined. If there's only a parent block, then this would create a >> circular dependency, as you point out...
I don't think there is a circular dependency: > XSL 1.1 says for percentages in block-progression-dimension: > The percentage is calculated with respect to the corresponding dimension > of the closest area ancestor that was generated by a block-level > formatting object. If that dimension is not specified explicitly i.e., > it depends on content's block-progression-dimension), the value is > interpreted as "auto". Which I understand as changing the "n%" value of b-p-d for the current object to "auto". So on Andrea's example: <fo:table-row> <fo:table-cell number-columns-spanned="{all}"> <fo:block-container block-progression-dimension.optimum="100%" block-progression-dimension.minimum="0pt"> <fo:block> </fo:block> </fo:block-container> </fo:table-cell> </fo:table-row> The height of the fo:block-container is 100% of the height of the fo:table (the closest ancestor generating a block-area). As for fo:table the only sensible value is "auto", then the height of this very block-container is changed to "auto". > > In the case where fo:table is a child of fo:block or fo:flow isn't the > nearest ancestor reference area the fo:region-body? Whose bpd will be > known. To be precise, the nearest ancestor is the normal-flow-reference-area in which the table relies, which has the size of its parent span-reference-area, whose size generally is the size of the main-reference-area (unless there are several spans) which generally has the size of the region-body (unless there are before-floats or footnotes) (see 6.4.14 fo:region-body). Follow me? ;-) So yes the bpd should be known, unless there are several spans in which case we can surely imagine a whole bunch of tricky situations with a mix of auto and percentages, leaving the bpd undefined... >> Besides that, mind that the native XSL property 'block-progression- >> dimension' does not directly apply to table or table-row. That is, >> specifying block-progression-dimension="100%" on a table or table-row >> would (and should) not have any effect. Only the CSS-XSL hybrids >> 'height/min-height/max-height' apply to them. Now, these being CSS >> properties in origin, I think that either: >> a) the first rule in 7.3 applies >> "1. For properties defined in CSS2 referring to the "containing >> block", the content-rectangle of the closest ancestor block-area that >> is not a line-area is used." >> >> or b), the height property being mapped to XSL's block-progression- >> dimension (or inline-progression-dimension), the fourth rule applies >> "4. If the formatting object generating the identified area generates >> a sequence of such areas, the first area is used for the conversion." >> >> I'd put my money on a). Moreover, this is most likely why XSL So would I. >> explicitly refers to CSS in its definition of height, since >> percentage heights for tables and table-rows in CSS are /not/ defined >> in terms of a containing block --they are undefined altogether :( >> >> b) seems to make matters even worse. It would again lead to a >> circular dependency for some tables that are direct descendants of >> the flow, since that 'first area' could correspond to the first area >> generated by the table itself... If not, then it could also be an >> area generated by a completely unrelated block (=first block in the >> flow) preceding the table...? Big Shrug indeed! No, the block area in question would be the normal-flow-reference-area above. Anyway I don't think there is a circular dependency in any case. As I understand it, at least. Vincent --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]