An area's placement is governed by the XSL-FO stacking rules and the area's traits refined from the properties of the objects. This placement happens at the block level in each of the before-float reference areas, normal-flow reference areas (page columns ), and footnote reference areas on a page, at the line level inside a block where the lines are generated by the formatter (not the stylesheet), and at the inline level within a line containing characters , rules, graphics, and other inline constructs.
Areas stacked normally are stacked in the pertinent progression direction. Page-level reference areas stack in the block-progression direction. Lines and table rows also stack in the block-progression direction. Page column, table column, and inline areas stack in the inline-progression direction.
Recall from Figure 4-3 that these directions are based on the combination of writing mode and reference orientation.
The "natural" stacking of areas may produce typographically unpleasant results. While the initial values implement common-sense formatting control for consistent presentation, many traditional conventions break initial values. For example, you often need to keep a heading in the body on the same page as the first paragraph to which the heading applies when the naturally occurring page break could otherwise separate these two items. These settings override the physical arrangement of information implied by the default area properties.
Conditionality and precedence can eliminate certain areas from being rendered, to prevent the unnecessary use of inter-block spacing when pagination renders a block without an adjacent sibling. For example, a block forced to the top of a new page doesn't always need the space defined for between blocks to be rendered.
Formatting special cases can be accommodated easily with simple specifications of intent where the formatter determines the applicability of spaces based on object properties. Not only can the transformation process ascribe such properties more easily than it can determine space behaviors; it would be impossible for the transformation process to know where the result information will end up in the rendered result to make such a decision.
Numerous properties are available to be used in formatting objects to specify these nuances of layout, such as breaking the flow of content to a new column or page, maintaining a minimum number of widow and orphan lines of a block on a page, keeping information together in the same reference area, drawing borders around information, and painting backgrounds behind information.