8.1.1 Float definition Using the float object, you can position out-of-line information at the before, start, or end sides of a page. -
The before floats are flowed in the before-float reference area (see Figure 8-1). -
A float creates a dimensionless anchor area in the area tree. -
The anchor is tied to the information that precedes the float in the flow. -
Out-if-line information is placed relative to the anchor -
The content of the float is always a set of block-level constructs. Information can be defined at the block level or at the inline level of the flow. -
The anchor is treated as a block if defined at the block level. -
The anchor is typically treated as an inline construct if defined at the inline level. -
It must be defined in the body region of the page. -
It must be defined as a descendant of a relatively positioned block. -
It cannot have any float , footnote , or marker descendants. The blocks of the float definition are positioned in the area tree accordingly . -
The before floats are stacked in the before-float reference area. -
The side floats are stacked in a side-float reference area. -
Float content that does not float is flowed as normal content. -
This may be the result of a faulty definition or placement. -
A float is an area that is not normally flowed and cannot be defined within any other area that is not normally flowed (e.g. another float, a footnote, a perimeter region, an absolutely positioned block container, etc.). -
Float lengths cannot be preset and are always derived from the content of the float. The block areas that float have no border or padding. Side floats do not overlap and are typically placed beside each other. 8.1.2 The float object Purpose Content -
( 6.10.2 ) ( %block;)+, -
child object: Optional properties -
clear ( 7.18.1 ; 368), -
float ( 7.18.2 ; 376). 8.1.3 The interaction of blocks and floats The clear property is used to prevent two side floats from being beside each other or a block-level object from being beside a float. -
It is not documented as a property within the individual block-level object descriptions. -
The default is for side floats to continue intruding into the main reference area. -
The default is for the lines of a block to contour around the accumulation of side floats. -
Those constructs with the clear value clear the float they would otherwise be beside. Consider three situations in Figure 8-2 that illustrate the use of clear on each of floats and blocks; -
the numbers reflect the order in which the constructs are flowed; -
the thick-lined blocks with "F-" prefixes are floats; -
the thin-lined blocks with "B-" prefixes are blocks. Figure 8-2. The clearing of slide floats by new constructs Of note in the diagram: -
the left-most page fragment shows the default situation where side floats intrude and blocks flow around floats; -
the center page fragment shows the second float being clear of the first float; -
the right-most page fragment shows the second block being clear of all floats; The intrusion- displace property indicates the strategy of locating the start (or end) edges and indents of the lines of the block being intruded upon. Consider three situations in Figure 8-3 that illustrate the use of intrusion-displace on a block with both text-indent and start-indent . -
" indent " respects text-indent and start-indent ; -
" block " respects text-indent but limits all lines by the width of the float; -
" line " ignores text-indent if occupied by the float, and respects start-indent . Figure 8-3. The behavior of lines in a block next to a float |