AH Formatter / XSL Formatter

XSLT/XSL-FO/MathML Technics


Basic, General
About AH Formatter
About XSL Formatter
XSLT/XSL-FO/SVG/MathML Conformance
XSLT/XSL-FO/MathML Technics
Q.  The margin is specified for fo:block, and, in addition, margin is specified for the child's fo:table. However, margin of parents' fo:block doesn't influence fo:table. Why? [No.2004032508]

For expample,

<fo:block margin-left="1in">
  <fo:table margin-left="0.75in">

the W3C Recommendation for XSL-FO says as follows:

5.3.2. Margin, Space, and Indent Properties

If the corresponding absolute "margin" property is specified on the formatting object and the formatting object generates a reference area the computed value of the margin is used to calculate the computed value of the corresponding "Y-indent" property, where Y is either "start" or "end". The formulae for "start-indent" and "end-indent" are":
start-indent = margin-corresponding + padding-corresponding + bordercorresponding-width
end-indent = margin-corresponding + padding-corresponding + bordercorresponding-width

margin-left is treated as start-indent. The value of start-indent is used based on reference-area. The fo:table generates reference-area. Therefore, margin-left of this fo:table is converted into start-indnet, and margin-left(start-indnet) of parents block is ineffectual. If the from-parent() function is used, the result is the same.

<fo:table margin-left="from-parent() + 0.75in">

Copyright © 1999-2011 Antenna House, Inc. All rights reserved.
Antenna House is a trademark of Antenna House, Inc.