- From: W. Eliot Kimber <eliot@isogen.com>
- Date: Sat, 02 Nov 2002 06:37:04 -0600
- To: xsl-editors@w3.org
I'm trying to get a full understanding of block geometry and I think I've pretty much got it now but I must report that the initial discussion of block geometry in section 4.4.1, which I found to be pretty clear, is then completely thrown out the window by the discussion of margins in 5.3.2, in that the effect of margin specifications, which are not mentioned *before* 5.3.2, seemingly contradicts 4.4.1 in that 4.4.1 says that the rectangles of a block are relative to (and only to) the content rectangle of the containing reference area. And by implication, are always *inside* of the containing reference area's content rectangle given positive or zero values for border, padding, and indent. That is, given the information in 4.4.1 and this markup: <fo:block-container border-start-style="solid" border-start-width="1pt" border-start-color="red" > <fo:block border-start-style="solid" border-start-width="4pt" border-start-color="rgb(200, 100, 0)" padding-start="8pt" font-family="sans-serif" font-size="24pt" line-height="110%" > I would except to see that the inner block's 4pt orange border is adjacent to and inside of the block container's red border. But in fact, the orange border is rendered 12 pts to the left (toward the page's start edge) from the red border of the containing area! Why? The reason, of course, is that I haven't specified either margin-left="0pt" or start-indent="12pt" (border width + padding). But nothing in 4.4.1 suggested I would need to do so. Hmph. It is only in section 5.3.2, in the discussion of margins, that it becomes clearer why (although the motivation for margins being defined *at all* is not provided in 5.3.2, or anywhere that I can find other than for CSS compatibility). That is, this statement: "If the corresponding absolute margin property is not explicitly specified, or if the corresponding relative property is specified on the formatting object and the absolute property only specified by the expansion of a shorthand, the corresponding absolute margin property is calculated according to the following formulae: margin-corresponding = start-indent - inherited_value_of(start-indent) - padding-corresponding - border-corresponding-width" Does explain the behavior, but the justification for this formula is not provided anywhere I can find. Given that I can't see any value in margins on blocks *at all* (I have all the control I need from the space, indent, and padding properties) and don't have any CSS legacy of any kind (conceptual or data) I would prefer that the margins be limited strictly to page areas, but that's of course not an option given that the spec is published. [And as a standards writer myself, I fully understand the need to maintain compatability with other specs even when you'd rather not have to.] However, it would be very helpful if 4.4.1 included a discussion of the effect of non-zero explicit or implicit margin values, as well as the fact that space-* is overridden by a larger *-indent value--it would, I think, make things a bit clearer. That is, the statements in 4.4.1 hold true if and only if margin-*="0pt". As the picture in 4.4.1 stands, it's unspecified at that point what the effect of having a start-indent greater than the sum of the space-before, border width, and padding is, but I expected (for some reason, not sure why) that the extra space woudl be added to the padding, not the space-* (but the actual behavior is just as reasonable and probably closer to the normally expected result). It would also be helpful if 5.3.2 at least provided some motivation for the inclusion of margin properties or at least say why they have the counter-intuitive effect of pulling the border and padding rectangles outside of the content rectangles of their blocks' containing reference areas. I assume that the motivation is so that the default effect is for the content rectangle of the contained block to be the same as the content rectangle of the containing area, but I don't see the value in making that the default behavior. What am I missing? Cheers, Eliot -- W. Eliot Kimber, eliot@isogen.com Consultant, ISOGEN International 1016 La Posada Dr., Suite 240 Austin, TX 78752 Phone: 512.656.4139
Received on Saturday, 2 November 2002 07:36:17 UTC