|
7 Formatting Properties7.1 Description of Property GroupsThe following sections describe the properties of the XSL formatting objects. A number of properties are copied from the CSS2 specification. In addition, the CSS2 errata all apply. See [CSS2].
7.2 XSL Areas and the CSS Box ModelThis section describes how to interpret property descriptions which incorporate the CSS2 definition of the same property. In CSS2, "boxes" are generated by "elements" in the same way that XSL areas are generated by formatting objects. Any references in the CSS2 definition to "boxes" are to be taken as referring to "areas" in the XSL area model, and where "element" appears in a CSS2 definition it should be taken to refer to a "formatting object". The position and size of a box are normally taken to refer to the position and size of the area's content-rectangle. Additional correspondences between the CSS2 Box Model and the XSL Area Model are contained in the following table.
Box margins map to area traits in accordance with the description of how area traits are computed from property values in [5 Property Refinement / Resolution]. 7.3 Common Accessibility PropertiesXSL Definition:
It is used by all formatting objects that can be contained in fo:flow or fo:static-content (all formatting objects that can be directly created from an XML source element). Values have the following meanings:
This property provides a pointer back to the original XML document(s) used to create this formatting object tree, in accordance with the Dublin Core definition of "Source" ("A Reference to a resource from which the present resource is derived." See: http://purl.org/DC/documents/rec-dces-19990702.htm.) The value is not validated by and has no inherent standardized semantics for any XSL processor. W3C Accessibility guidelines strongly encourage the use of this property either on the fo:root or on the first formatting object generated from a given source document. The URI reference is useful for alternate renderers (aural readers, etc.) whenever the structure of the formatting object tree is inappropriate for that renderer. XSL Definition:
It is used by all formatting objects that can be contained in fo:flow or fo:static-content (all formatting objects that can be directly created from an XML source element). Values have the following meanings:
This property provides a hint for alternate renderers (aural readers, etc.) as to the role of the XML element or elements that were used to construct this formatting object, if one could be identified during XSLT tree construction. This information can be used to prepare alternate renderings when the normal rendering of a formatting object is not appropriate or satisfactory; for example, the role information can be used to provide better aural renderings of visually formatted material. To aid alternate renderers, the <string> value should be the qualified name (QName [W3C XML Names] of the element from which this formatting object is constructed. If a QName does not provide sufficient context, the <uri-specification> can be used to identify an RDF resource that describes the role in more detail. This RDF resource may be embedded in the result tree and referenced with a relative URI or fragment identifier, or the RDF resource may be external to the result tree. This specification does not define any standard QName or RDF vocabularies; these are frequently application area dependent. Other groups, for example the Dublin Core, have defined such vocabularies. This property is not inherited, but all subsidiary nodes of this formatting object that do not bear a role property should utilize the same alternate presentation properties. (It is not inherited because knowledge of the start and end of the formatting object subtree generated by the element may be needed by the renderer.) 7.4 Common Absolute Position PropertiesA Property Derived from a CSS2 Property.
Values have the following meanings:
The following additional restrictions apply for paged presentations:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-top. The "top" property specifies how far a box's top content edge is offset below the top edge of the box's containing block. XSL modifications to the CSS definition: See definition of property left ([7.4.5 "left"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-right. The "right" property specifies how far a box's right content edge is offset to the left of the right edge of the box's containing block. XSL modifications to the CSS definition: See definition of property left ([7.4.5 "left"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-bottom. The "bottom" property specifies how far a box's bottom content edge is offset above the bottom of the box's containing block. XSL modifications to the CSS definition: See definition of property left ([7.4.5 "left"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-left. The "left" property specifies how far a box's left content edge is offset to the right of the left edge of the box's containing block. The values of the four (position offset) properties have the following meanings:
For absolutely positioned boxes, the offsets are with respect to the box's containing block. For relatively positioned boxes, the offsets are with respect to the outer edges of the box itself (i.e., the box is given a position in the normal flow, then offset from that position according to these properties). XSL modifications to the CSS definition: These properties set the position of the content-rectangle of the associated area. If both "top" and "bottom" are specified, the height of the content-rectangle is overridden. If both "left" and "right" are specified, the width of the content-rectangle is overridden. 7.5 Common Aural PropertiesCSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-azimuth. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-cue-after. XSL modifications to the CSS definition: The <uri> value has been changed to a <uri-specification>. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-cue-before. XSL modifications to the CSS definition: The <uri> value has been changed to a <uri-specification>. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-elevation. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-pause-after. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-pause-before. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-pitch. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-pitch-range. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-play-during. XSL modifications to the CSS definition: The <uri> value has been changed to a <uri-specification>. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-richness. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-speak. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/tables.html#propdef-speak-header. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-speak-numeral. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-speak-punctuation. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-speech-rate. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-stress. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-voice-family. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-volume. 7.6 Common Border, Padding, and Background PropertiesThe following common-border-padding-and-background-properties are taken from CSS2. Those "border", "padding", and "background" properties that have a before, after, start, or end suffix are writing-mode relative and are XSL-only properties. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/colors.html#propdef-background-attachment.
If a background-image is specified, this property specifies whether it is fixed with regard to the viewport (fixed) or scrolls along with the document (scroll). Even if the image is fixed, it is still only visible when it is in the background or padding area of the element. Thus, unless the image is tiled ("background-repeat: repeat"), it may be invisible. User agents may treat fixed as scroll. However, it is recommended they interpret fixed correctly, at least for the HTML and BODY elements, since there is no way for an author to provide an image only for those browsers that support fixed. See the section on conformance for details. XSL modifications to the CSS definition: The last paragraph in the CSS description does not apply. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/colors.html#propdef-background-color. This property sets the background color of an element, either a <color> value or the keyword transparent, to make the underlying colors shine through.
XSL modifications to the CSS definition: XSL adds an "icc-color" function (see [5.10.2 Color Functions]) as a valid value of this property. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/colors.html#propdef-background-image. This property sets the background image of an element. When setting a "background-image", authors should also specify a background-color that will be used when the image is unavailable. When the image is available, it is rendered on top of the background color. (Thus, the color is visible in the transparent parts of the image). Values for this property are either <uri-specification>, to specify the image, or "none", when no image is used.
XSL modifications to the CSS definition: The <uri> value has been changed to a <uri-specification>. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/colors.html#propdef-background-repeat. If a background image is specified, this property specifies whether the image is repeated (tiled), and how. All tiling covers the content and padding areas of a box. Values have the following meanings:
XSL modifications to the CSS definition: "Horizontal" and "vertical" are defined relative to the reference-orientation; "horizontal" is "left" to "right", and "vertical" is "top" to "bottom". NOTE: 7.6.5 "background-position-horizontal" A Property Derived from a CSS2 Property.
If a "background-image" has been specified, this property specifies its initial position horizontally.
XSL modifications to the CSS definition: "Left" and "right" are defined relative to the reference-orientation. 7.6.6 "background-position-vertical" A Property Derived from a CSS2 Property.
If a "background-image" has been specified, this property specifies its initial position vertically.
XSL modifications to the CSS definition: "Top" and "bottom" are defined relative to the reference-orientation. Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the color of the border on the before-edge of a block-area or inline-area. See definition of property border-top-color ([7.6.19 "border-top-color"]). Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the border-style for the before-edge. See definition of property border-top-style ([7.6.20 "border-top-style"]). Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the border-width for the before-edge. See definition of property border-top-width ([7.6.21 "border-top-width"]). XSL modifications to the CSS definition: The following value type has been added for XSL:
NOTE: Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the color of the border on the after-edge of a block-area or inline-area. See definition of property border-top-color ([7.6.19 "border-top-color"]). Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the border-style for the after-edge. See definition of property border-top-style ([7.6.20 "border-top-style"]). Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the border-width for the after-edge. See definition of property border-top-width ([7.6.21 "border-top-width"]). XSL modifications to the CSS definition: The following value type has been added for XSL:
NOTE: Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the color of the border on the start-edge of a block-area or inline-area. See definition of property border-top-color ([7.6.19 "border-top-color"]). Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the border-style for the start-edge. See definition of property border-top-style ([7.6.20 "border-top-style"]). Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the border-width for the start-edge. NOTE: See definition of property border-top-width ([7.6.21 "border-top-width"]). XSL modifications to the CSS definition: The following value type has been added for XSL:
Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the color of the border on the end-edge of a block-area or inline-area. See definition of property border-top-color ([7.6.19 "border-top-color"]). Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the border-style for the end-edge. See definition of property border-top-style ([7.6.20 "border-top-style"]). Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the border-width for the end-edge. NOTE: See definition of property border-top-width ([7.6.21 "border-top-width"]). XSL modifications to the CSS definition: The following value type has been added for XSL:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-top-color. The 'border-color' property sets the color of the four borders. Values have the following meanings:
If an element's border color is not specified with a "border" property, user agents must use the value of the element's "color" property as the computed value for the border color. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-top-style. The border style properties specify the line style of a box's border (solid, double, dashed, etc.). The properties defined in this section refer to the <border-style> value type, which may take one of the following:
All borders are drawn on top of the box's background. The color of borders drawn for values of 'groove', 'ridge', 'inset', and 'outset' depends on the element's 'color' property. Conforming HTML user agents may interpret 'dotted', 'dashed', 'double', 'groove', 'ridge', 'inset', and 'outset' to be 'solid'. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-top-width. The border width properties specify the width of the border area. The properties defined in this section refer to the <border-width> value type, which may take one of the following values:
The interpretation of the first three values depends on the user agent. The following relationships must hold, however:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-bottom-color. Specifies the border color for the bottom-edge. See definition of property border-top-color ([7.6.19 "border-top-color"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-bottom-style. Specifies the border style for the bottom-edge. See definition of property border-top-style ([7.6.20 "border-top-style"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-bottom-width. Specifies the border width for the bottom-edge. See definition of property border-top-width ([7.6.21 "border-top-width"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-left-color. Specifies the border color for the left-edge. See definition of property border-top-color ([7.6.19 "border-top-color"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-left-style. Specifies the border style for the left-edge. See definition of property border-top-style ([7.6.20 "border-top-style"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-left-width. Specifies the border width for the left-edge. See definition of property border-top-width ([7.6.21 "border-top-width"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-right-color. Specifies the border color for the right-edge. See definition of property border-top-color ([7.6.19 "border-top-color"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-right-style. Specifies the border style for the right-edge. See definition of property border-top-style ([7.6.20 "border-top-style"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-right-width. Specifies the border width for the right-edge. See definition of property border-top-width ([7.6.21 "border-top-width"]). Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the width of the padding on the before-edge of a block-area or inline-area. See definition of property padding-top ([7.6.35 "padding-top"]). XSL modifications to the CSS definition: The following value type has been added for XSL:
Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the width of the padding on the after-edge of a block-area or inline-area. See definition of property padding-top ([7.6.35 "padding-top"]). XSL modifications to the CSS definition: The following value type has been added for XSL:
Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the width of the padding on the start-edge of a block-area or inline-area. See definition of property padding-top ([7.6.35 "padding-top"]). XSL modifications to the CSS definition: The following value type has been added for XSL:
Writing-mode Relative Equivalent of a CSS2 Property.
Specifies the width of the padding on the end-edge of a block-area or inline-area. See definition of property padding-top ([7.6.35 "padding-top"]). XSL modifications to the CSS definition: The following value type has been added for XSL:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-padding-top.
Specifies the width of the padding on the top-edge of a block-area or inline-area. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-padding-bottom. Specifies the width of the padding on the bottom-edge of a block-area or inline-area. See definition of property padding-top ([7.6.35 "padding-top"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-padding-left. Specifies the width of the padding on the left-edge of a block-area or inline-area. See definition of property padding-top ([7.6.35 "padding-top"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-padding-right. Specifies the width of the padding on the right-edge of a block-area or inline-area. See definition of property padding-top ([7.6.35 "padding-top"]). 7.7 Common Font PropertiesThe following common-font-properties all are taken from CSS2. The reference to CSS2 is: http://www.w3.org/TR/REC-CSS2/fonts.html NOTE: XSL uses an abstract model of a font. This model is described in this section and is based on current font technology as exemplified by the OpenType specification [OpenType]. A font consists of a collection of glyphs together with the information, the font tables, necessary to use those glyphs to present characters on some medium. A glyph is a recognizable abstract graphic symbol which is independent of any specific design. The combination of the collection of glyphs and the font tables is called the font data. The font tables include the information necessary to map characters to glyphs, to determine the size of glyph areas and to position the glyph area. Each font table consists of one or more font characteristics, such as the font-weight and font-style. The geometric font characteristics are expressed in a coordinate system based on the EM box. (The EM is a relative measure of the height of the glyphs in the font; see [5.9.7.2 Relative Lengths].) This box that is 1 EM high and 1 EM wide is called the design space. Points in this design space are expressed in geometric coordinates in terms of fractional units of the EM. The coordinate space of the EM box is called the design space coordinate system. For scalable fonts, the curves and lines that are used to draw a glyph are represented using this coordinate system. NOTE: XSL assumes that the font tables will provide at least three font characteristics: an ascent, a descent and a set of baseline-tables. The coordinate values for these are given in the design space coordinate system. The ascent is given by the vertical coordinate of the top of the EM box; the descent is given by the vertical coordinate of the bottom of the EM box. The baseline-table is explained below. The glyphs of a given script are positioned so that a particular point on each glyph, the alignment-point, is aligned with the alignment-points of the other glyphs in that script. The glyphs of different scripts are typically aligned at different points on the glyph. For example, Western glyphs are aligned on the bottoms of the capital letters, certain Indic glyphs (including glyphs from the Devanagari, Gurmukhi and Bengali scripts) are aligned at the top of a horizontal stroke near the top of the glyphs and Far-Eastern glyphs are aligned either at the bottom or center of the EM box of the glyph. Within a script and within a line of text having a single font-size, the sequence of alignment-points defines, in the inline-progression-direction, a geometric line called a baseline. Western and most other alphabetic and syllabic glyphs are aligned to an "alphabetic" baseline, the above Indic glyphs are aligned to a "hanging" baseline and the Far-Eastern glyphs are aligned to an "ideographic" baseline.
This figure shows the vertical position of the alignment-point for alphabetic and many syllabic scripts, illustrated by a Roman "A"; for certain Indic scripts, illustrated by a Gurmukhi syllable "ji"; and for ideographic scripts, illustrated by the ideograhic glyph meaning "country". The thin black rectangle around the ideographic glyph illustrates the EM box for that glyph and shows the typical positioning of the "black marks" of the glyph within the EM box. A baseline-table specifies the position of one or more baselines in the design space coordinate system. The function of the baseline table is to facilitate the alignment of different scripts with respect to each other when they are mixed on the same text line. Because the desired relative alignments may depend on which script is dominant in a line (or block), there may be a different baseline table for each script. In addition, different alignment positions are needed for horizontal and vertical writing modes. Therefore, the font may have a set of baseline tables: typically, one or more for horizontal writing-modes and zero or more for vertical writing-modes.
Examples of horizontal and vertical baseline positions. The thin lined box in each example is the "EM box". For the Latin glyphs, only the EM box of the first glyph is shown. Example 1 shows typical Latin text written horizontally. This text is positioned relative to the alphabetic baseline, shown in blue. Example 2 shows a typical ideographic glyph positioned on the horizontal ideographic baseline. Note that the EM Box is positioned differently for these two cases. Examples 3 and 4 show the same set of baselines used in vertical writing. The Latin text, example 3, is shown with a glyph-orientation of 90 degrees which is typical for proportionally space Latin glyphs in vertical writing. Even though the ideographic glyph in Example 4 is positioned on the vertical ideographic baseline, because it is centered in the EM box, all glyphs with the same EM Box are centered, vertically, with respect to one another. Additional examples showing the positioning of mixed scripts are given in the introductions to [7.12 Area Alignment Properties] and [7.26 Writing-mode-related Properties]. The font tables for a font include font characteristics for the individual glyphs in the font. XSL assumes that the font tables include, for each glyph in the font, one width value, one alignment-baseline and one alignment-point for the horizontal writing-modes. If vertical writing-modes are supported, then each glyph must have another width value, alignment-baseline and alignment-point for the vertical writing-modes. (Even though it is specified as a width, for vertical writing-modes the width is used in the vertical direction.) The script to which a glyph belongs determines an alignment-baseline to which the glyph is to be aligned. The position of this baseline in the design space coordinate system determines the default block-progression-direction position of the alignment-point. The inline-progression-direction position of the alignment-point is on the start-edge of the glyph. (These positions are adjusted according to the specifications in [7.12.1 "alignment-adjust"] when an instance of a glyph is used in an inline or block formatting object. The "space-start" and/or the "space-end" properties of the fo:character that maps to the glyph may be adjusted to effect "kerning" with respect to adjacent glyphs.)
This figure shows glyphs from three different scripts, each with its EM box and within the EM box, the baseline table applicable to that glyph. The alignment-point of each glyph is shown by an "X" on the start edge of the EM box and by making alignment-baseline blue. The baseline-table of the parent formatting object of the characters that mapped to these glyphs is shown as a set of dashed lines. In addition to the font characteristics required above, a font may also supply substitution and positioning tables that can be used by a formatter to re-order, combine, and position a sequence of glyphs to make one or more composite glyphs. The combination may be as simple as a ligature, or as complex as an Indic syllable which combines, usually with some re-ordering, multiple consonants and vowel glyphs. See [4.7.2 Line-building]. NOTE: |
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-family. This property specifies a prioritized list of font family names and/or generic family names. To deal with the problem that a single font may not contain glyphs to display all the characters in a document, or that not all fonts are available on all systems, this property allows authors to specify a list of fonts, all of the same style and size, that are tried in sequence to see if they contain a glyph for a certain character. This list is called a font set. The generic font family will be used if one or more of the other fonts in a font set is unavailable. Although many fonts provide the "missing character" glyph, typically an open box, as its name implies this should not be considered a match except for the last font in a font set. There are two types of font family names:
XSL modifications to the CSS definition:
The second sentence of the second paragraph of the CSS2 definition is changed to: Although many fonts provide the "missing character" glyph, typically an open box, as its name implies this should not be considered a match. 7.7.3 "font-selection-strategy" XSL Definition:
There is no XSL mechanism to specify a particular font; instead, a selected font is chosen from the fonts available to the User Agent based on a set of selection criteria. The selection criteria are the following font properties: "font-family", "font-style", "font-variant", "font-weight", "font-stretch", and "font-size", plus, for some formatting objects, one or more characters. These characters are called the contextual characters. The contextual characters can be as few as a single character and as many as the entire character complement of the result tree being processed. Except for the fo:character formatting object, for all other formatting objects where "font-family" applies, the selection criteria consist of the above font properties only. For the fo:character formatting object, the selection criteria are these properties plus either the value of the "character" property of the fo:character alone or that character together with other contextual characters. The strategy to be followed for selecting a font based on these criteria is specified by the "font-selection-strategy" property. The "font-family" property is a prioritized list of font family names, which are tried in sequence to find an available font that matches the selection criteria. The font property selection criteria are matched if the corresponding font characteristics match the properties as specified in the property descriptions. If no matching font is found, a fallback selection is determined in a system-dependent manner. NOTE: If no match has been found for a particular character, there is no selected font and the User Agent should provide a visual indication that a character is not being displayed (for example, using the 'missing character' glyph). Values of the "font-selection-strategy" property have the following meanings:
Describes the criteria for selecting fonts and the different strategies for using these criteria to determine a selected font. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font-size. This property describes the size of the font when set solid. Values have the following meanings:
The actual value of this property may differ from the computed value due a numerical value on 'font-size-adjust' and the unavailability of certain font sizes. Child elements inherit the computed 'font-size' value (otherwise, the effect of 'font-size-adjust' would compound). XSL modifications to the CSS definition: XSL incorporates the following text from CSS2 15.5 (http://www.w3.org/TR/REC-CSS2/fonts.html#algorithm") as part of the property definition. 'font-size' must be matched within a UA-dependent margin of tolerance. (Typically, sizes for scalable fonts are rounded the nearest whole pixel, while the tolerance for bitmapped fonts could be as large as 20%.) Further computations, e.g., by 'em' values in other properties, are based on the computed 'font-size' value. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/fonts.html#font-styling. The 'font-stretch' property selects a normal, condensed, or extended face from a font family.
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/fonts.html#font-size-props. In bicameral scripts, the subjective apparent size and legibility of a font are less dependent on their 'font-size' value than on the value of their 'x-height', or, more usefully, on the ratio of these two values, called the aspect value (font size divided by x-height). The higher the aspect value, the more likely it is that a font at smaller sizes will be legible. Inversely, faces with a lower aspect value will become illegible more rapidly below a given threshold size than faces with a higher aspect value. Straightforward font substitution that relies on font size alone may lead to illegible characters. For example, the popular font Verdana has an aspect value of 0.58; when Verdana's font size 100 units, its x-height is 58 units. For comparison, Times New Roman has an aspect value of 0.46. Verdana will therefore tend to remain legible at smaller sizes than Times New Roman. Conversely, Verdana will often look 'too big' if substituted for Times New Roman at a chosen size. This property allows authors to specify an aspect value for an element that will preserve the x-height of the first choice font in the substitute font. Values have the following meanings:
This property allows authors to specify an aspect value for an element that will preserve the x-height of the first choice font in the substitute font. Font size adjustments take place when computing the actual value of "font-size". Since inheritance is based on the computed value, child elements will inherit unadjusted values. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/fonts.html#font-styling. The "font-style" property requests normal (sometimes referred to as "roman" or "upright"), italic, and oblique faces within a font family. Values have the following meanings:
XSL modifications to the CSS definition: The following value type has been added for XSL:
XSL incorporates the following text from CSS2 15.5 (http://www.w3.org/TR/REC-CSS2/fonts.html#algorithm") as part of the property definition, except that for XSL the information is obtained from the font tables of the available fonts. 'italic' will be satisfied if there is either a face in the UA's font database labeled with the CSS keyword 'italic' (preferred) or 'oblique'. Otherwise the values must be matched exactly or font-style will fail. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/fonts.html#font-styling. In a small-caps font, the glyphs for lowercase letters look similar to the uppercase ones, but in a smaller size and with slightly different proportions. The "font-variant" property requests such a font for bicameral (having two cases, as with Roman script). This property has no visible effect for scripts that are unicameral (having only one case, as with most of the world's writing systems). Values have the following meanings:
Insofar as this property causes text to be transformed to uppercase, the same considerations as for "text-transform" apply. XSL modifications to the CSS definition: XSL incorporates the following text from CSS2 15.5 (http://www.w3.org/TR/REC-CSS2/fonts.html#algorithm") as part of the property definition. 'normal' matches a font not labeled as 'small-caps'; 'small-caps' matches (1) a font labeled as 'small-caps', (2) a font in which the small caps are synthesized, or (3) a font where all lowercase letters are replaced by uppercase letters. A small-caps font may be synthesized by electronically scaling uppercase letters from a normal font. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/fonts.html#font-styling. The "font-weight" property specifies the weight of the font.
Child elements inherit the computed value of the weight. XSL modifications to the CSS definition: XSL incorporates the following text from CSS2 15.5.1 (http://www.w3.org/TR/REC-CSS2/fonts.html#q46) as part of the property definition. The association of other weights within a family to the numerical weight values is intended only to preserve the ordering of weights within that family. User agents must map names to values in a way that preserves visual order; a face mapped to a value must not be lighter than faces mapped to lower values. There is no guarantee on how a user agent will map fonts within a family to weight values. However, the following heuristics tell how the assignment is done in typical cases: If the font family already uses a numerical scale with nine values (as e.g., OpenType does), the font weights should be mapped directly. If there is both a face labeled Medium and one labeled Book, Regular, Roman or Normal, then the Medium is normally assigned to the '500'. The font labeled "Bold" will often correspond to the weight value '700'. If there are fewer then 9 weights in the family, the default algorithm for filling the "holes" is as follows. If '500' is unassigned, it will be assigned the same font as '400'. If any of the values '600', '700', '800', or '900' remains unassigned, they are assigned to the same face as the next darker assigned keyword, if any, or the next lighter one otherwise. If any of '300', '200', or '100' remains unassigned, it is assigned to the next lighter assigned keyword, if any, or the next darker otherwise. There is no guarantee that there will be a darker face for each of the 'font-weight' values; for example, some fonts may have only a normal and a bold face, others may have eight different face weights. 7.8 Common Hyphenation PropertiesXSL Definition:
Values have the following meanings:
Specifies the country to be used by the formatter in language-/locale-coupled services, such as line-justification strategy, line-breaking, and hyphenation. NOTE: The country may be the country component of any RFC 1766 code; (these are derived from ISO 3166). XSL Definition:
Values have the following meanings:
Specifies the language to be used by the formatter in language-/locale-coupled services, such as line-justification strategy, line-breaking, and hyphenation. NOTE: The language may be the language component of any RFC 1766 code (these are derived from the ISO 639 language codes). XSL Definition:
Values have the following meanings:
Specifies the script to be used by the formatter in language-/locale-coupled services, such as line-justification strategy, line-breaking, and hyphenation. NOTE: XSL Definition:
Values have the following meanings:
Specifies whether hyphenation is allowed during line-breaking when the formatter is formatting this formatting object. XSL Definition:
Values have the following meanings:
Specifies the Unicode character to be presented when a hyphenation break occurs. The styling properties of this character are those inherited from its containing flow object. 7.8.6 "hyphenation-push-character-count" XSL Definition:
Values have the following meanings:
The hyphenation-push-character-count is a positive integer specifying the minimum number of characters in a hyphenated word after the hyphenation character. This is the minimum number of characters in the word pushed to the next line after the line ending with the hyphenation character. 7.8.7 "hyphenation-remain-character-count" XSL Definition:
Values have the following meanings:
The hyphenation-remain-character-count is a positive integer specifying the minimum number of characters in a hyphenated word before the hyphenation character. This is the minimum number of characters in the word left on the line ending with the hyphenation character. 7.9 Common Margin Properties-BlockCSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-margin-top. Margin-width may be one of the following:
Negative values for margin properties are allowed, but there may be implementation-specific limits. Sets the top margin of a box. XSL modifications to the CSS definition:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-margin-bottom. Margin-width may be one of the following:
Negative values for margin properties are allowed, but there may be implementation-specific limits. Sets the bottom margin of a box. XSL modifications to the CSS definition:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-margin-left. Margin-width may be one of the following:
Negative values for margin properties are allowed, but there may be implementation-specific limits. Sets the left margin of a box. XSL modifications to the CSS definition:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-margin-right. Margin-width may be one of the following:
Negative values for margin properties are allowed, but there may be implementation-specific limits. Sets the right margin of a box. XSL modifications to the CSS definition:
XSL Definition:
Values have the following meanings:
Specifies the value of the space-specifier for the space before the areas generated by this formatting object. A definition of space-specifiers, and the interaction between space-specifiers occurring in sequence are given in [4.3 Spaces and Conditionality]. NOTE: XSL Definition:
Values have the following meanings:
Specifies the value of the space-specifier for the space after the areas generated by this formatting object. A definition of space-specifiers, and the interaction between space-specifiers occurring in sequence are given in [4.3 Spaces and Conditionality]. NOTE: XSL Definition:
Values have the following meanings:
This property may have a negative value, which indicates an outdent. XSL Definition:
Values have the following meanings:
This property may have a negative value, which indicates an outdent. 7.10 Common Margin Properties-InlineThis group also includes all the properties in the common-margin-properties-block group except space-before, space-after, start-indent, and end-indent. XSL Definition:
Values have the following meanings:
Specifies the value of the space-specifier for the space after the areas generated by this formatting object. A definition of space-specifiers, and the interaction between space-specifiers occurring in sequence are given in [4.3 Spaces and Conditionality]. NOTE: XSL Definition:
Values have the following meanings:
Specifies the value of the space-specifier for the space before the areas generated by this formatting object. A definition of space-specifiers, and the interaction between space-specifiers occurring in sequence are given in [4.3 Spaces and Conditionality]. NOTE: 7.11 Common Relative Position PropertiesThis group also includes the top, right, bottom, and left properties from the common-absolute-position-properties group. A Property Derived from a CSS2 Property.
Values have the following meanings:
7.12 Area Alignment PropertiesThe area alignment properties control the alignment of child areas with respect to their parent areas. The parent area is given a frame of reference through its scaled-baseline-table. The positions of these baselines are illustrated in the following figure:
This figure shows samples of Gurmukhi (a hanging Indic script), Latin and ideographic scripts together with most of the baselines defined below. The thin line around the ideographic glyphs symbolizes the EM box in which these glyphs are centered. In this figure, the position of the "text-before-edge" and "text-after-edge" baselines is computed assuming that the "alphabetic" baseline is the dominant-baseline. The "central" baseline has been omitted from the figure, but it lies halfway between the "text-before-edge" and "text-after-edge" baselines, just about where the "math" baseline is shown. The baseline-identifiers below are used in this specification. Some of these are determined by baseline-tables contained in a font as described in [7.7.1 Fonts and Font Data]. Others are computed from other font characteristics as described below.
There are, in addition, two computed baselines that are only defined for line areas. For each line-area, there is a dominant-baseline, a baseline-table and a baseline-table font-size which are those of the nearest ancestor formatting object that completely contains the whole line. The "before-edge" and "after-edge" baselines are defined as follows.
Examples showing "before-edge" and "after-edge" alignment: |
|
There are also four baselines that are defined only for horizontal writing-modes.
The alignment of a formatting object with respect to its parent is determined by three things: the scaled-baseline-table of the parent and the alignment-baseline and alignment-point of the formatting object being aligned. Prior to alignment, the scaled-baseline-table of the parent may be shifted. The property specifications below provide the information necessary to align the parent and child formatting objects. There are four properties that control alignment of formatting objects to the above set of baselines. These properties are all independent and are designed so that typically only the specification of one of the properties is needed to achieve a particular alignment goal. The primary baseline alignment property is the "dominant-baseline" property. This property has a compound value with three components. The dominant-baseline-identifier component is the default alignment-baseline to be used when aligning two inline areas. The baseline-table component specifies the positions of the baselines in the font design space coordinates. (See [7.7.1 Fonts and Font Data].) The baseline-table acts something like a musical staff; it defines particular points along the block-progression-direction to which glyphs and inline formatting objects can be aligned. The baseline-table font-size component provides a scaling factor for the baseline-table. For convenience, the specification will sometimes refer to the baseline identified by the dominant-baseline-identifier component of the "dominant-baseline" property as the "dominant baseline" (in an abuse of terminology). A simple example of alignment is shown in the following figure. The figure shows the presentation of two inline formatting objects, one inside the other. These inline formatting objects make up the content of a line in a block where the writing-mode is "lr-tb" and the font is "Helvetica". The structure of the example is as follows:
<fo:inline>Apex <fo:inline>Top</fo:inline></fo:inline>
Because no properties are specified, the initial values apply. Since a horizontal writing-mode is in use, the dominant-baseline-identifier is set to "alphabetic" and the baseline-table is taken from the nominal-font for the block in which the line appears, which, in this case, is Helvetica. In the figure, the positions of the baselines relative to the current font size are shown as red (staff) lines. These lines are labeled with abbreviations of the names of the baselines (e.g., TBE for "text-before-edge"). The baseline identified by the dominant-baseline-identifier (A) is shown in blue. There is a break in the staff lines to separately show the inner inline formatting object. This is not necessary for this example, but this distinction will become important in subsequent examples. The "alignment-baseline" property is the primary control on the positioning of an inner formatting object with respect to its parent. For all but fo:character, the initial value of the "alignment-baseline" property is "baseline". This aligns the dominant-baseline of the inner inline formatting object with the dominant baseline of the outer inline formatting object. This is shown by the short blue line that connects the two separated staffs (A) in the figure. The glyphs determined by the fo:characters that are in the content of the two formatting objects are aligned based on the script to which the glyph belongs. Since this example only has Latin glyphs, they are aligned to the "alphabetic" baseline.
An inner inline formatting object containing Latin characters aligned to an outer inline formatting object also containing Latin characters. In the next figure, the content of the inner inline formatting object is in Gurmukhi, the script of the Punjabi language. The Gurmukhi syllables are read as, "guru". Rather than use Unicode values for these characters, they are symbolized by placing the Latin transliteration in italic type. The structure of the example becomes:
<fo:inline>Apex <fo:inline>guru</fo:inline></fo:inline>
The only change from the previous example is that the glyphs of the Gurmukhi script are aligned to the "hanging" baseline of the inner inline formatting object. The alignment of that formatting object itself, with respect to the outer inline formatting object, is unchanged.
An inner inline formatting object containing Gurmukhi characters aligned to an outer inline formatting object containing Latin characters. In the next figure, fragments of the text of the previous examples make up the content of the outer inline formatting object. The inner inline formatting object has a change of font-size, however. The structure is:
<fo:inline>Apguru <fo:inline font-size='.75em'> Exji </fo:inline> </fo:inline>
In this example, the alignment of the inner inline formatting object itself does not change, nor does the alignment of the smaller glyphs inside the inner formatting object. The Latin glyphs are still aligned to the "alphabetic" baseline and the Gurmukhi glyphs, which are pronounced "ji" are aligned to the "hanging" baseline. Note also that just changing the "font-size" property did not change the baseline-table in effect in the inner inline formatting object.
The inner inline formatting object has a reduced font-size. The next figure is equivalent to the previous example with the Gurmukhi character replaced by ideographic characters. These are aligned to the "ideographic" baseline.
The previous figure re-done with ideographic glyphs instead of Gurmukhi glyphs. The EM boxes are shown for the ideograms to clarify the alignment of these glyphs. To change the scaling of the lines of the baseline table, it is necessary to use the "dominant-baseline" property on the inner inline formatting object. The value of "reset-size" causes the baseline-table font-size to be reset from the font-size of the formatting object on which the "dominant-baseline" property appears. The next figure shows the effect of this, using the structure:
<fo:inline>Apguru <fo:inline font-size='.75em' dominant-baseline='reset-size'> Exji </fo:inline> </fo:inline>
The alignment of the inner inline formatting object, with respect to the outer inline formatting object, is still determined by aligning the dominant baselines. But, the baseline-table of the inner inline formatting object has been rescaled to the font-size of the inner inline formatting object. Hence the smaller glyphs align with each other.
The baseline-table of the inner inline formatting object has been re-sized to match the font-size of the inner inline formatting object. But, what if it is more important that the small Gurmukhi glyphs align with the large Gurmukhi glyphs than having the Latin glyphs align. There are at least two ways to achieve this. The structure:
<fo:inline dominant-baseline='hanging'>Apguru <fo:inline font-size='.75em' dominant-baseline='reset-size'> Exji </fo:inline> </fo:inline>
is illustrated in the next figure. The "hanging" baseline becomes the dominant baseline and the initial value of the "alignment-baseline" property causes the (newly) dominant "hanging" baselines to be aligned as is shown by the connection of the blue baselines.
Changing the dominant baseline to the "hanging" baseline causes the inner inline formatting object to be aligned on its parent's "hanging" baseline. It is also possible to achieve the effect of the above figure without changing the dominant baseline. Instead it is sufficient to explicitly specify that the inner inline formatting object is aligned on its "hanging" baseline. This is done by:
<fo:inline>Apguru <fo:inline font-size='.75em' dominant-baseline='reset-size' alignment-baseline='hanging'> Exji </fo:inline> </fo:inline>
The only change this approach would make in the above figure is to color the "hanging" baseline red and keep the "alphabetic" baseline as the (blue) dominant baseline. This baseline in the inner inline formatting object would not (as it does not in the above figure) align with the "alphabetic" baseline in the outer inline formatting object. The third baseline alignment property is the "baseline-shift" property. Like the properties other than the "dominant-baseline" property, this property does not change the baseline-table or the baseline-table font-size. It does shift the whole baseline table of the parent formatting object so that when an inner inline formatting object is aligned to one of the parents baselines, the position of the inner inline formatting object is shifted. This is illustrated in the next figure. The structure which creates this figure is:
<fo:inline>Ap <fo:inline baseline-shift='super'>1ji</fo:inline> </fo:inline>
Because the whole set of baseline-table staff lines are shifted to the position of the superscript baseline: it does not matter to which baseline the glyphs in the superscript are aligned. The European number "1" is aligned to the "alphabetic" baseline and the Gurmukhi syllable "ji" is aligned to the "hanging" baseline.
Using a "baseline-shift" for a super-script (or a sub-script). It is more common for the font-size of the super-script text to be smaller than the font-size of the text to which it is appended. Consider:
<fo:inline>Ap <fo:inline font-size='.75em' baseline-shift='super'> 1ji </fo:inline> </fo:inline>
Because changing the font-size on a super-script (or sub-script) is common, this is the one case where changing the font-size does cause the baseline-table font-size to be reset when the "dominant-baseline" property has its initial value. After the rescaling, the default alignment to the dominant baseline positions the inline formatting object for the super-script to the dominant baseline position in the shifted baseline-table of the parent formatting object.
Reducing the font-size of the super-script automatically resets the baseline-table size so that mixed languages in the super-script stay mutually aligned. The fourth alignment property is the "alignment-adjust" property. This property is primarily used for objects, such as some graphics, that do not belong to a particular script and do not have a predefined alignment point. The "alignment-adjust" property allows the author to assign where, on the start-edge of the object, the alignment point for that object lies. XSL Definition:
The "alignment-adjust" property allows more precise alignment of areas generated by formatting objects, in particular for formatting objects, such as graphics, that do not have a baseline-table or lack the desired baseline in their baseline-table. With the "alignment-adjust" property, the position of the baseline identified by the "alignment-baseline" can be explicitly determined. Values for the property have the following meaning:
XSL Definition:
This property specifies how an object is aligned with respect to its parent. That is, to which of the parent's baselines the alignment-point of this object is aligned. The alignment-adjust property specifies how the alignment point is determined. It defaults to the baseline with the same name as the computed value of the alignment-baseline property. That is, the position of "ideographic" alignment-point in the block-progression-direction is the position of the "ideographic" baseline in the baseline-table of the object being aligned. Values have the following meanings:
XSL Definition:
The "baseline-shift" property allows repositioning of the dominant-baseline relative to the dominant-baseline of the parent area. The shifted object might be a sub- or superscript. Within the shifted object, the whole baseline-table is offset; not just a single baseline. The amount of the shift is determined from information from the parent area, the sub- or superscript offset from the nominal-font of the parent area, percent of the "line-height" of the parent area or an absolute value. When the value of "baseline-shift" is other than "0", then the baseline-table font-size component of the "dominant-baseline" property is re-computed to use the "font-zise" applicable to the formatting object on which the non-zero "baseline-shift" property is specified. Values for the property have the following meaning:
NOTE: XSL Definition:
This property specifies the alignment, in the block-progression-direction, of the areas that are the children of a reference-area. Values for the property have the following meaning:
XSL Definition:
The "dominant-baseline" property is used to determine or re-determine a scaled-baseline-table. A scaled-baseline-table is a compound value with three components: a baseline-identifier for the dominant-baseline, a baseline-table and a baseline-table font-size. Some values of the property re-determine all three values; other only re-establish the baseline-table font-size. When the initial value, "auto", would give an undesired result, this property can be used to explicitly set the desire scaled-baseline-table. Values for the property have the following meaning:
If there is no baseline-table in the nominal font or if the baseline-table lacks an entry for the desired baseline, then the User Agent may use heuristics to determine the position of the desired baseline. XSL Definition:
This property specifies the alignment, in the block-progression-direction, between two or more areas. If the "display-align" property applies to this formatting object and has a value other than "auto" this property is ignored. Values for the property have the following meaning:
7.13 Area Dimension Properties7.13.1 "block-progression-dimension" Writing-mode Relative Equivalent of a CSS2 Property.
This property specifies the block-progression-dimension of the content-rectangle. The user may specify an explicit size (<length> or <percentage>) or a <length-range>, allowing the size to be adjusted by the formatter. This property does not apply when the "line-height" property applies to the same dimension of the areas generated by this formatting object. Values have the following meanings:
XSL Definition:
Values have the following meanings:
Specifies the content-height of some object (e.g., an external graphic). If the value is a percentage, the value of this property is the percentage applied to the intrinsic height. XSL Definition:
Values have the following meanings:
Specifies the content-width of some object (e.g., an external graphic). If the value is a percentage, the value of this property is the percentage applied to the intrinsic width. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visudet.html#propdef-height. This property specifies the content height of boxes generated by block-level and replaced elements. This property does not apply to non-replaced inline-level elements. The height of a non-replaced inline element's boxes is given by the element's (possibly inherited) 'line-height' value. Values have the following meanings:
Negative values for 'height' are illegal. XSL modifications to the CSS definition: In XSL, this property is mapped to either "inline-progression-dimension" or "block-progression-dimension", based on the applicable values of the "writing-mode" and "reference-orientation" properties. Details on the mapping are given in [5 Property Refinement / Resolution]. For a discussion of the "height" property in tables see: http://www.w3.org/TR/REC-CSS2/tables.html 7.13.5 "inline-progression-dimension" Writing-mode Relative Equivalent of a CSS2 Property.
This property specifies the inline-progression-dimension of the content-rectangle. The user may specify an explicit size (<length> or <percentage>) or a <length-range>, allowing the size to be adjusted by the formatter. This property does not apply when the "line-height" property applies to the same dimension of the areas generated by this formatting object. Values have the following meanings:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visudet.html#propdef-max-height. These two properties ["max-height" and "max-width"] allow authors to constrain box heights to a certain range. Values have the following meanings:
XSL modifications to the CSS definition: In XSL, this property is mapped to either "inline-progression-dimension" or "block-progression-dimension", based on the applicable values of the "writing-mode" and "reference-orientation" properties. Details on the mapping are given in [5 Property Refinement / Resolution]. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visudet.html#propdef-max-width. These two properties ["max-height" and "max-width"] allow authors to constrain box widths to a certain range. Values have the following meanings:
XSL modifications to the CSS definition: In XSL, this property is mapped to either "inline-progression-dimension" or "block-progression-dimension", based on the applicable values of the "writing-mode" and "reference-orientation" properties. Details on the mapping are given in [5 Property Refinement / Resolution]. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visudet.html#propdef-min-height. XSL modifications to the CSS definition: In XSL, this property is mapped to either "inline-progression-dimension" or "block-progression-dimension", based on the applicable values of the "writing-mode" and "reference-orientation" properties. Details on the mapping are given in [5 Property Refinement / Resolution]. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visudet.html#propdef-min-width. XSL modifications to the CSS definition: In XSL, this property is mapped to either "inline-progression-dimension" or "block-progression-dimension", based on the applicable values of the "writing-mode" and "reference-orientation" properties. Details on the mapping are given in [5 Property Refinement / Resolution]. XSL Definition:
Values have the following meanings:
Specifies whether scaling needs to preserve the intrinsic aspect ratio. XSL Definition:
Values have the following meanings:
This property is used to indicate a preference in the scaling/sizing tradeoff to be used when formatting bitmapped graphics. NOTE: CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visudet.html#propdef-width. This property specifies the content width of boxes generated by block-level and replaced elements. This property does not apply to non-replaced inline-level elements. The width of a non-replaced inline element's boxes is that of the rendered content within them (before any relative offset of children). Recall that inline boxes flow into line boxes. The width of line boxes is given by their containing block, but may be shorted by the presence of floats. The width of a replaced element's box is intrinsic and may be scaled by the user agent if the value of this property is different than 'auto'. Values have the following meanings:
Negative values for "width" are illegal. XSL modifications to the CSS definition: In XSL, this property is mapped to either "inline-progression-dimension" or "block-progression-dimension", based on the applicable values of the "writing-mode" and "reference-orientation" properties. Details on the mapping are given in [5 Property Refinement / Resolution]. 7.14 Block and Line-related PropertiesXSL Definition:
Values have the following meanings:
Controls whether hyphenation can be performed on the last line that fits in a given reference-area. 7.14.2 "hyphenation-ladder-count" XSL Definition:
Values have the following meanings:
Specifies a limit on the number of successive hyphenated line-areas the formatter may generate in a block-area. XSL Definition:
Values have the following meanings:
Specifies an indent to be applied to the end-edge of the last (or only) line-area contained in a block-area. It is added to the block's end-edge. Positive values indent the edge, negative values outdent the edge. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visudet.html#propdef-line-height. Values have the following meanings:
If the property is set on a block-level element whose content is composed of inline-level elements, it specifies the minimal height of each generated inline box. If the property is set on an inline-level element, it specifies the exact height of each box generated by the element. (Except for inline replaced elements, where the height of the box is given by the "height" property.) When an element contains text that is rendered in more than one font, user agents should determine the "line-height" value according to the largest font size. Generally, when there is only one value of "line-height" for all inline boxes in a paragraph (and no tall images), the above will ensure that baselines of successive lines are exactly "line-height" apart. This is important when columns of text in different fonts have to be aligned, for example in a table. Note that replaced elements have a "font-size" and a "line-height" property, even if they are not used directly to determine the height of the box. The "font-size" is, however, used to define the "em" and "ex" units, and the "line-height" has a role in the "vertical-align" property. XSL modifications to the CSS definition: In XSL the "line-height" property is used in determining the half-leading trait. XSL adds the following value with the following meanings:
If line-height is specified using <length>, <percentage>, or <number>, the formatter shall convert the single value to a space-specifier with the subfields interpreted as follows:
7.14.5 "line-height-shift-adjustment" XSL Definition:
Values have the following meanings:
This property is used to control whether the line-height is adjusted for content that has a baseline-shift. NOTE: 7.14.6 "line-stacking-strategy" XSL Definition:
Values have the following meanings:
Selects the strategy for positioning adjacent lines, relative to each other. XSL Definition:
Values have the following meanings:
The "linefeed-treatment" property specifies the treatment of linefeeds (U+000A characters). XSL Definition:
Values have the following meanings:
The "space-treatment" property specifies the treatment of space (U+0020) and other whitespace characters except for linefeeds (U+000A characters). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/text.html#propdef-text-align. This property describes how inline content of a block is aligned. Values have the following meanings:
A block of text is a stack of line boxes. In the case of 'left', 'right' and 'center', this property specifies how the inline boxes within each line box align with respect to the line box's left and right sides; alignment is not with respect to the viewport. In the case of 'justify', the UA may stretch the inline boxes in addition to adjusting their positions. (See also 'letter-spacing' and 'word-spacing'.) NOTE: XSL modifications to the CSS definition: Values have the following meanings:
This property describes how inline content of a block is aligned. XSL Definition:
Values have the following meanings:
Specifies the alignment of the last line-area in a block, and any lines in the block ending in U+000A. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/text.html#propdef-text-indent. This property specifies the indentation of the first line of text in a block. More precisely, it specifies the indentation of the first box that flows into the block's first line box. The box is indented with respect to the left (or right, for right-to-left layout) edge of the line box. User agents should render this indentation as blank space. Values have the following meanings:
The value of 'text-indent' may be negative, but there may be implementation-specific limits. XSL modifications to the CSS definition: The "text-indent" property specifies an adjustment to the start-indent of the first line-area in a block-area. This indent is added to the block's start-indent. A negative value specifies a hanging indent (outdent) on the first line. 7.14.12 "white-space-collapse" XSL Definition:
Values have the following meanings:
The "white-space-collapse" property specifies the treatment of consecutive white-space. The effect is as follows: after all ignored white-space is discarded and all "treat-as-space" white-space is turned into a space, all resulting runs of two or more consecutive spaces are replaced by a single space, then any remaining space immediately adjacent to a remaining linefeed is also discarded. An implementation is free to use any algorithm to achieve an equivalent effect. XSL Definition:
Values have the following meanings:
Specifies how line-wrapping (line-breaking) of the content of the formatting object is to be handled. 7.15 Character PropertiesXSL Definition:
Values have the following meanings:
Specifies the Unicode character to be presented. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/text.html#propdef-letter-spacing. This property specifies spacing behavior between text characters. Values have the following meanings:
Character-spacing algorithms are user agent dependent. Character spacing may also be influenced by justification (see the "text-align" property). When the resultant space between two characters is not the same as the default space, user agents should not use ligatures. Conforming user agents may consider the value of the 'letter-spacing' property to be 'normal'. XSL modifications to the CSS definition: The following value type has been added for XSL:
Default space between characters is defined to be 0pt, i.e., glyph-areas stacked with no extra space between the allocation-rectangles of the glyph-areas. The inline-progression-dimension of the glyph-area is obtained by formatting the fo:character. For an fo:character that in the Unicode database is classified as "Alphabetic" the start-space and end-space traits are each set to a value as follows:
The CSS statement that "Conforming user agents may consider the value of the 'letter-spacing' property to be 'normal'." does not apply in XSL, if the User Agent implements the "Extended" property set. NOTE: The algorithm for resolving the adjusted values between word-spacing and letter-spacing is User Agent dependent. 7.15.3 "suppress-at-line-break" XSL Definition:
This property applies only to fo:character and determines whether the character's representation shall be suppressed when it would occur adjacent to a formatter-generated line break. Multiple characters may be so suppressed. This property has the following values:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/text.html#propdef-text-decoration. This property describes decorations that are added to the text of an element. If the property is specified for a block-level element, it affects all inline-level descendants of the element. If it is specified for (or affects) an inline-level element, it affects all boxes generated by the element. If the element has no content or no text content (e.g., the IMG element in HTML), user agents must ignore this property. Values have the following meanings:
The color(s) required for the text decoration should be derived from the "color" property value. This property is not inherited, but descendant boxes of a block box should be formatted with the same decoration (e.g., they should all be underlined). The color of decorations should remain the same even if descendant elements have different "color" values. XSL modifications to the CSS definition: XSL adds the following values with the following meanings:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/text.html#propdef-text-shadow. This property accepts a comma-separated list of shadow effects to be applied to the text of the element. The shadow effects are applied in the order specified and may thus overlay each other, but they will never overlay the text itself. Shadow effects do not alter the size of a box, but may extend beyond its boundaries. The stack level of the shadow effects is the same as for the element itself. Each shadow effect must specify a shadow offset and may optionally specify a blur radius and a shadow color. A shadow offset is specified with two "length" values that indicate the distance from the text. The first length value specifies the horizontal distance to the right of the text. A negative horizontal length value places the shadow to the left of the text. The second length value specifies the vertical distance below the text. A negative vertical length value places the shadow above the text. A blur radius may optionally be specified after the shadow offset. The blur radius is a length value that indicates the boundaries of the blur effect. The exact algorithm for computing the blur effect is not specified. A color value may optionally be specified before or after the length values of the shadow effect. The color value will be used as the basis for the shadow effect. If no color is specified, the value of the "color" property will be used instead. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/text.html#propdef-text-transform. This property controls capitalization effects of an element's text. Values have the following meanings:
The actual transformation in each case is written language dependent. See [RFC2070] for ways to find the language of an element. Conforming user agents may consider the value of "text-transform" to be "none" for characters that are not from the ISO Latin-1 repertoire and for elements in languages for which the transformation is different from that specified by the case-conversion tables of Unicode or ISO 10646. XSL modifications to the CSS definition: There are severe internationalization issues with the use of this property. It has been retained for CSS compatibility, but its use is not recommended in XSL. XSL Definition:
This property determines if the character shall be treated as a word-space or as a normal letter. This property has the following values:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/text.html#propdef-word-spacing. This property specifies spacing behavior between words. Values have the following meanings:
Word spacing algorithms are user agent-dependent. Word spacing is also influenced by justification (see the 'text-align' property). XSL modifications to the CSS definition: The following value type has been added for XSL:
Default space between words is defined to be the inline-progression-dimension of the glyph-area obtained by formatting the current fo:character whose treat-as-wordspace trait has the value "true". For fo:character whose treat-as-word-space trait has the value "true", the start-space and end-space traits are each set to a value as follows:
NOTE: The algorithm for resolving the adjusted values between word-spacing and letter-spacing is User Agent dependent. NOTE: 7.16 Color-related PropertiesCSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/colors.html#propdef-color.
This property describes the foreground color of an element's text content. XSL modifications to the CSS definition: XSL adds an "icc-color" function (see [5.10.2 Color Functions]) as a valid value of this property. XSL Definition:
Specifies the name of a color-profile for internal references. XSL Definition:
"rendering-intent" permits the specification of a color-profile rendering-intent other than the default. "rendering-intent" is applicable primarily to color-profiles corresponding to CMYK color spaces. The different options cause different methods to be used for translating colors to the color gamut of the target rendering device. Values have the following meanings:
7.17 Float-related PropertiesCSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-clear. This property indicates which sides of an element's box(es) may not be adjacent to an earlier floating box. (It may be that the element itself has floating descendants; the 'clear' property has no effect on those.) This property may only be specified for block-level elements (including floats). For compact and run-in boxes, this property applies to the final block box to which the compact or run-in box belongs. Values have the following meanings when applied to non-floating block boxes:
When the property is set on floating elements, it results in a modification of the rules for positioning the float. An extra constraint (#10) is added [to those specified in the description of the 'float' property]: 10. The top outer edge of the float must be below the bottom outer edge of all earlier left-floating boxes (in the case of 'clear: left'), or all earlier right-floating boxes (in the case of 'clear: right'), or both ('clear: both'). XSL modifications to the CSS definition: A start-float is defined to mean an area with area-class "xsl-side-float" that was generated by an fo:float with property "float" specified as "left" or "start". An end-float is defined to mean an area with area-class "xsl-side-float" that was generated by an fo:float with property "float" specified as "right" or "end". A side-float is defined to mean either a start-float or an end-float. An area is defined to "clear" a side-float if the before-edge of the area's border-rectangle is positioned to be after the after-edge of the float, or if the area is not a descendant of the side-float's parent reference-area. A block-level formatting object is defined "to clear" a side-float if the areas generated by the formatting object clear the side-float. In XSL this property applies to block-level formatting objects and fo:float. The clear property when applied to an fo:float that generates side-floats does not apply to the fo:float's anchor-area. Values have the following meanings:
When a block-level formatting object is constrained by the "clear" property, its space-before property component values may be altered as necessary for each area that it generates, in order to meet the constraint. The alterations are constrained to produce the minimum additional space required to meet the constraint of the "clear" property. NOTE: CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-float. This property specifies whether a box should float to the left, right, or not at all. It may be set for elements that generate boxes that are not absolutely positioned. Values have the following meanings:
Here are the precise rules that govern the behavior of floats: 1. The left outer edge of a left-floating box may not be to the left of the left edge of its containing block. An analogous rule holds for right-floating elements. 2. If the current box is left-floating, and there are any left floating boxes generated by elements earlier in the source document, then for each such earlier box, either the left outer edge of the current box must be to the right of the right outer edge of the earlier box, or its top must be lower than the bottom of the earlier box. Analogous rules hold for right-floating boxes. 3. The right outer edge of a left-floating box may not be to the right of the left outer edge of any right-floating box that is to the right of it. Analogous rules hold for right-floating elements. 4. A floating box's outer top may not be higher than the top of its containing block. 5. The outer top of a floating box may not be higher than the outer top of any block or floated box generated by an element earlier in the source document. 6. The outer top of an element's floating box may not be higher than the top of any line-box containing a box generated by an element earlier in the source document. 7. A left-floating box that has another left-floating box to its left may not have its right outer edge to the right of its containing block's right edge. (Loosely: a left float may not stick out at the right edge, unless it is already as far to the left as possible.) An analogous rule holds for right-floating elements. 8. A floating box must be placed as high as possible. 9. A left-floating box must be put as far to the left as possible, a right-floating box as far to the right as possible. A higher position is preferred over one that is further to the left/right. XSL modifications to the CSS definition: The following values have been added for XSL: "before", "start", and "end". In XSL this property applies only to fo:float Values have the following meanings:
This property determines the area-class trait of the block-areas returned by the fo:float, which controls the placement and parent of these block-areas. 7.18 Keeps and Breaks PropertiesPage breaks only apply to descendants of the fo:flow formatting object, and not within absolutely positioned areas, or out-of-line areas. In descendants of fo:flow formatting objects, column breaks apply, and a column break in the last (or only) column implies a page break; column breaks in static-content apply except for those in the last (or only) column which are ignored. The semantics of keeps and breaks are further described in [4.8 Keeps and Breaks]. XSL Definition:
Values for these properties have the following meanings:
Specifies that the last area generated by formatting this formatting object shall be the last one placed in a particular context (e.g., page-area, column-area). This property has no effect when it appears on an fo:table-row formatting object in which there is any row spanning occurring that includes both the current fo:table-row and the subsequent one. XSL Definition:
Values have the following meanings:
Specifies that the first area generated by formatting this formatting object shall be the first one placed in a particular context (e.g., page-area, column-area). This property has no effect when it appears on an fo:table-row formatting object in which there is any row spanning occurring that includes both the current fo:table-row and the previous one. XSL Definition:
This property imposes keep-together conditions on formatting objects. The <keep> datatype is composed of three components: within-line, within-column, and within-page. Different components apply to different classes of formatting objects and provide keep conditions relative to different contexts. In the case of the within-line component, the keep context consists of line-areas; for the within-column component, the keep context consists of column-areas; for the within-page component, the keep context consists of page-areas. In the descriptions below, the term "appropriate context" should be interpreted in terms of the previous sentence. Values of the components have the following meanings:
The semantics of keeps and breaks are further described in [4.8 Keeps and Breaks]. XSL Definition:
This property imposes keep-with-next conditions on formatting objects. The <keep> datatype is composed of three components: within-line, within-column, and within-page. Different components apply to different classes of formatting objects and provide keep conditions relative to different contexts. In the case of the within-line component, the keep context consists of line-areas; for the within-column component, the keep context consists of column-areas; for the within-page component, the keep context consists of page-areas. In the descriptions below, the term "appropriate context" should be interpreted in terms of the previous sentence. Values of the components have the following meanings:
The semantics of keeps and breaks are further described in [4.8 Keeps and Breaks]. XSL Definition:
This property imposes keep-with-previous conditions on formatting objects. The <keep> datatype is composed of three components: within-line, within-column, and within-page. Different components apply to different classes of formatting objects and provide keep conditions relative to different contexts. In the case of the within-line component, the keep context consists of line-areas; for the within-column component, the keep context consists of column-areas; for the within-page component, the keep context consists of page-areas. In the descriptions below, the term "appropriate context" should be interpreted in terms of the previous sentence. Values of the components have the following meanings:
The semantics of keeps and breaks are further described in [4.8 Keeps and Breaks]. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/page.html#propdef-orphans. See definition of property widows ([7.18.7 "widows"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/page.html#propdef-widows. The "orphans" property specifies the minimum number of lines of a paragraph that must be left at the bottom of a page. The "widows" property specifies the minimum number of lines of a paragraph that must be left at the top of a page. XSL modifications to the CSS definition: In XSL the "orphans" property specifies the minimum number of line-areas in the first area generated by the formatting object. The "widows" property specifies the minimum number of line-areas in the last area generated by the formatting object. 7.19 Layout-related PropertiesThe following are layout-related properties that are not common to all formatting objects. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visufx.html#propdef-clip. The 'clip' property applies to elements that have a 'overflow' property with a value other than 'visible'. Values have the following meanings:
The element's ancestors may also have clipping regions (in case their "overflow" property is not "visible"); what is rendered is the intersection of the various clipping regions. If the clipping region exceeds the bounds of the UA's document window, content may be clipped to that window by the native operating environment. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visufx.html#propdef-overflow. This property specifies whether the content of a block-level element is clipped when it overflows the element's box (which is acting as a containing block for the content). Values have the following meanings:
Even if "overflow" is set to "visible", content may be clipped to a UA's document window by the native operating environment. XSL modifications to the CSS definition: One more value is defined as follows:
7.19.3 "reference-orientation" XSL Definition:
Values have the following meanings:
The reference-orientation specifies the direction for "top" for the content-rectangle of the "reference-area". This is used as the reference for deriving directions, such as the block-progression-direction, inline-progression-direction, etc. as specified by the "writing-mode" and "direction" properties, and the orientation, placement, and tiling of the background. The "reference-orientation" property is applied only on formatting objects that establish a reference-area. Each value of "reference-orientation" sets the absolute direction for "top", "left", "bottom", and "right"; which is used by "writing-mode", "direction", and all positioning operations that are referenced to the reference-area or are nested within it. The reference-orientation trait on an area is indirectly derived from the "reference-orientation" property on the formatting object that generates the area or the formatting object ancestors of that formatting object. XSL Definition:
Values have the following meanings:
Specifies if a block-level object should be placed in the current column or should span all columns of a multi-column region. 7.20 Leader and Rule PropertiesXSL Definition:
Values have the following meanings:
Specifies whether fo:leaders having identical content and property values shall have their patterns aligned with each other, with respect to their common reference-area or page. For fo:leaders where the "leader-pattern" property is specified as "dot" or as "use-content", this property will be honored. If the fo:leader is aligned, the start-edge of each cycle of the repeated pattern will be placed on the start-edge of the next cycle in the appropriate pattern-alignment grid. XSL Definition:
Values have the following meanings:
Provides the specification of how to fill in the leader. If the leader is aligned, the start-edge of each cycle of each repeating pattern component will be placed on the start-edge of the next cycle in the pattern-alignment grid. XSL Definition:
Values have the following meanings:
Specifies the length of each repeat cycle in a repeating leader. For leaders where the "leader-pattern" property is specified as "dot" or as "use-content", this property will be honored. XSL Definition:
Values have the following meanings:
Specifies the minimum, optimum, and maximum length of an fo:leader. This property constrains the length of the leader to be between the minimum and maximum lengths. NOTE: XSL Definition:
Specifies the style (pattern) of the rule. This property applies only if the "leader-pattern" property is specified as "rule". Values have the following meanings:
XSL Definition:
Specifies the overall thickness of the rule. This property applies only if the "leader-pattern" property is specified as "rule". Values have the following meanings:
7.21 Properties for Dynamic Effects Formatting ObjectsXSL Definition:
The "active-state" property is used to control which of the fo:multi-property-sets are used to format the child flow objects within an fo:multi-properties formatting object. The states (or at least the events that cause the state to be entered) are defined by the DOM. XSL Definition:
Specifies if the initial fo:multi-case should be restored when the fo:multi-switch gets hidden by an ancestor fo:multi-switch. NOTE: XSL Definition:
The purpose of this property is to allow fo:multi-toggle objects to select fo:multi-case objects to switch to. XSL Definition:
7.21.5 "destination-placement-offset" XSL Definition:
The "destination-placement-offset" property specifies the distance from the beginning (top) of the page to the innermost line-area that contains the first destination area. If the first destination area is not contained in a line-area, the "destination-placement-offset" property instead directly specifies the distance to the top of the destination area. If the specification of destination-placement-offset would result in a distance longer than the distance from the start of the document, the distance from the start of the document should be used. If the specified distance would push the first destination area below the page-area, the distance should be decreased so the whole first destination area becomes visible, if possible. If the first destination area is higher than the page, the top of the area should be aligned with the top of the page. XSL Definition:
Specifies the destination resource (or, when a fragment identifier is given, sub-resource) for an fo:basic-link. How the destination (sub-)resource is used and/or displayed is application and implementation-dependent. In typical browsing applications, the destination resource is displayed in the browser positioned so that some rendered portion resulting from the processing of some part of the specific destination sub-resource indicated by the fragment identifier is in view. At least one of the external-destination and internal-destination properties should be assigned. If both are assigned, the system may either report the error, or use the internal-destination property. XSL Definition:
NOTE: XSL Definition:
Specifies the destination flow object of an fo:basic-link. This property allows the destination flow object node to be explicitly specified. At least one of the external-destination and internal-destination properties should be assigned. If both are assigned, the system may either report the error, or use the internal-destination property. XSL Definition:
Specifies where the destination resource should be displayed. XSL Definition:
Specifies if the fo:multi-case can be initially displayed. The parent fo:multi-switch shall choose the first fo:multi-case child where the property "starting-state" has the value equal to "show". NOTE: If no fo:multi-case has "starting-state" property value of "show", the contents of no fo:multi-case should be displayed. NOTE: XSL Definition:
Specifies what fo:multi-case object(s) this fo:multi-toggle shall switch to. If switch-to is a name list, the user can switch to any of the named multi-case objects. If a multi-toggle with a single name is activated, it should immediately switch to the named multi-case. NOTE: 7.21.12 "target-presentation-context" XSL Definition:
Specifies the limited context in which the resource should be presented if the external destination is a resource of a processed structured media type for which a limited presentational context makes sense (e.g., XML, XHTML, SVG). This property is ignored if the "external-destination" property has an empty string value or if the external destination is not of a processed structured media type for which a limited presentational context makes sense. NOTE: NOTE: 7.21.13 "target-processing-context" XSL Definition:
Specifies the root of a virtual document that the processor preparing the new presentation should process if the external destination is a resource of a processed structured media type (e.g., XML, SVG). This property is ignored if the "external-destination" property has an empty string value or if the external destination is not of a processed structured media type. NOTE: If the root is not valid for the media type the processor may ignore this property. XSL Definition:
Specifies the stylesheet that shall be used for processing the resource. This stylesheet shall be used instead of any other stylesheet that otherwise would be used. NOTE: This property is ignored if the "external-destination" property has an empty string value or if the external destination is not of a media type that uses stylesheets. NOTE: |
7.22 Properties for MarkersXSL Definition:
Values have the following meanings:
This property identifies the fo:marker as being in a group with others that have the same name, each of which becomes a candidate to be retrieved by an fo:retrieve-marker that has a "retrieve-class-name" property of the same value. XSL Definition:
Values have the following meanings:
This property constrains that the fo:marker whose children are retrieved by the fo:retrieve-marker must have a "marker-class-name" property value that is the same as the value of this property. XSL Definition:
The term "containing page" is used here to mean the page that contains the first area generated or returned by the children of the retrieved fo:marker. Values have the following meanings:
This property specifies the preference for which fo:marker's children shall be retrieved by an fo:retrieve-marker, based on the areas returned by the parent of the fo:marker relative to the areas returned by the parents of other identically named fo:marker's. XSL Definition:
The term "containing page" is used here to mean the page that contains the first area generated or returned by the children of the retrieved fo:marker. Values have the following meanings:
7.23 Properties for Number to String ConversionXSL Definition:
This property is defined in [XSLT]: Number to String Conversion Attributes. XSL Definition:
This property is defined in [XSLT]: Number to String Conversion Attributes. XSL Definition:
This property is defined in [XSLT]: Number to String Conversion Attributes. XSL Definition:
This property is defined in [XSLT]: Number to String Conversion Attributes. A value of "auto" corresponds to the XSLT definition for when the attribute is not specified. 7.24 Pagination and Layout PropertiesThe following pagination and layout properties are all XSL only. XSL Definition:
This property forms part of a selection rule to determine if the referenced page-master is eligible for selection at this point in the page-sequence. The values have the following meanings:
XSL Definition:
Values have the following meanings:
Specifies the number of columns in the region. A value of 1 indicates that this is not a multi-column region. XSL Definition:
Values have the following meanings:
Specifies the width of the separation between adjacent columns in a multi-column region. See the description in [6.4.13 fo:region-body] for further details. XSL Definition:
Values have the following meanings:
Specifies the width of the region-start or region-end or the height of the region-before or region-after. XSL Definition:
Values have the following meanings:
Defines the name of the flow. The flow-name and region-name are used to assign the flow's content (or static-content's content) to a specific region or series of regions in the layout. In XSL this is done by specifying the name of the target region as the flow-name. (For example, text placed in the region-body would specify flow-name="xsl-region-body".) XSL Definition:
Force-page-count is used to impose a constraint on the number of pages in a page-sequence. In the event that this constraint is not satisfied, an additional page will be added to the end of the sequence. This page becomes the "last" page of that sequence. The values have the following meanings:
NOTE: XSL Definition:
Values have the following meanings:
Sets the initial-page-number to be used on this page-sequence. XSL Definition:
Values have the following meanings:
This property is used for two purposes:
XSL Definition:
Specifies the constraint on the maximum number of pages in the sub-sequence of pages that may be generated by an fo:page-sequence that uses the fo:repeatable-page-master-reference or fo:repeatable-page-master-alternatives on which this property is specified. The values have the following meanings:
XSL Definition:
The "media-usage" property is used to control how the selected display medium is used to present the page(s) specified by the stylesheet. Values for the property have the following meaning:
XSL Definition:
This property forms part of a selection rule to determine if the referenced page-master is eligible for selection at this point in the page-sequence. The values have the following meanings:
NOTE: XSL Definition:
Values have the following meanings:
Specifies the height of a page. NOTE: XSL Definition:
This property forms part of a selection rule to determine if the referenced page-master is eligible for selection at this point in the page-sequence. The values have the following meanings:
XSL Definition:
Values have the following meanings:
Specifies the width of a page. XSL Definition:
Values have the following meanings:
Specifies which region (i.e., region-before, region-after, region-start, or region-end) takes precedence in terms of which may extend into the corners of the simple-page-master. If both adjacent regions have equal precedence, the before-region or after-region is treated as if 'true' had been specified and the start-region or end-region will be treated as if 'false' had been specified. XSL Definition:
Values have the following meanings:
This property is used to identify a region within a simple-page-master. The "region-name" may be used to differentiate a region that lies on a page-master for an odd page from a region that lies on a page-master for an even page. In this usage, once a name is used for a specific class of region (start, end, before, after, or body), that name may only be used for regions of the same class in any other page-master. The reserved names may only be used in the manner described above. 7.25 Table Properties7.25.1 "border-after-precedence" XSL Definition:
Specifies the precedence of the border specification on this formatting object for the border-after. 7.25.2 "border-before-precedence" XSL Definition:
Specifies the precedence of the border specification on this formatting object for the border-before. See definition of property border-after-precedence ([7.25.1 "border-after-precedence"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/tables.html#propdef-border-collapse.
This property selects a table's border model. The value "separate" selects the separated borders border model. The value "collapse" selects the collapsing borders model. 7.25.4 "border-end-precedence" XSL Definition:
Specifies the precedence of the border specification on this formatting object for the border-end. See definition of property border-after-precedence ([7.25.1 "border-after-precedence"]). XSL Definition:
The lengths specify the distance that separates adjacent cell borders in the row-stacking-direction (given by the block-progression-direction of the table), and in the column-stacking-direction (given by the inline-progression-direction of the table). In the separate borders model, each cell has an individual border. The "border-separation" property specifies the distance between the borders of adjacent cells. This space is filled with the background of the table element. Rows, columns, row groups, and column groups cannot have borders (i.e., user agents must ignore the border properties for those elements). 7.25.6 "border-start-precedence" XSL Definition:
Specifies the precedence of the border specification on this formatting object for the border-start. See definition of property border-after-precedence ([7.25.1 "border-after-precedence"]). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/tables.html#q6.
This property specifies the position of the caption box with respect to the table box. Captions above or below a "table" element are formatted very much as if they were a block element before or after the table, except that (1) they inherit inheritable properties from the table, and (2) they are not considered to be a block box for the purposes of any "compact" or "run-in" element that may precede the table. A caption that is above or below a table box also behaves like a block box for width calculations; the width is computed with respect to the width of the table box's containing block. For a caption that is on the left or right side of a table box, on the other hand, a value other than "auto" for "width" sets the width explicitly, but "auto" tells the user agent to chose a "reasonable width". This may vary between "the narrowest possible box" to "a single line", so we recommend that users do not specify "auto" for left and right caption widths. To align caption content horizontally within the caption box, use the "text-align" property. For vertical alignment of a left or right caption box with respect to the table box, use the "vertical-align" property. The only meaningful values in this case are "top", "middle", and "bottom". All other values are treated the same as "top". XSL modifications to the CSS definition: Insert the following writing-mode relative values:
The CSS qualifications (1) and (2) do not apply. The last three sentences in the last paragraph (referencing "vertical-align") do not apply. XSL Definition:
For an fo:table-column formatting object, it specifies the column-number of the table cells that may use properties from this fo:table-column formatting object by using the from-table-column() function. The initial value is 1 plus the column-number of the previous table-column, if there is a previous table-column, and otherwise 1. For an fo:table-cell it specifies the number of the first column to be spanned by the table-cell. The initial value is the current column-number. For the first table-cell in a table-row, the current column number is 1. For other table-cells, the current column-number is the column-number of the previous table-cell in the row plus the number of columns spanned by that previous cell. XSL Definition:
The "column-width" property specifies the width of the column whose value is given by the "column-number" property. This property, if present, is ignored if the "number-columns-spanned" property is greater than 1. The "column-width" property must be specified for every column, unless the automatic table layout is used. NOTE: CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/tables.html#propdef-empty-cells.
In the separated borders model, this property controls the rendering of borders around cells that have no visible content. Empty cells and cells with the "visibility" property set to "hidden" are considered to have no visible content. Visible content includes " " (non-breaking-space) and other whitespace except ASCII CR ("\0D"), LF ("\0A"), tab ("\09"), and space ("\20"). XSL Definition:
Specifies whether this cell ends a row. This is only allowed for table-cells that are not in table-rows. 7.25.12 "number-columns-repeated" XSL Definition:
The "number-columns-repeated" property specifies the repetition of a table-column specification n times; with the same effect as if the fo:table-column formatting object had been repeated n times in the result tree. The "column-number" property, for all but the first, is the column-number of the previous one plus its value of the "number-columns-spanned" property. NOTE: 7.25.13 "number-columns-spanned" XSL Definition:
For an fo:table-column the "number-columns-spanned" property specifies the number of columns spanned by table-cells that may use properties from this fo:table-column formatting object using the from-table-column() function. For an fo:table-cell the "number-columns-spanned" property specifies the number of columns which this cell spans in the column-progression-direction starting with the current column. XSL Definition:
The "number-rows-spanned" property specifies the number of rows which this cell spans in the row-progression-direction starting with the current row. XSL Definition:
Specifies whether this cell starts a row. This is only allowed for table-cells that are not in table-rows. NOTE: CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/tables.html#propdef-table-layout.
The "table-layout" property controls the algorithm used to lay out the table cells, rows, and columns. 7.25.17 "table-omit-footer-at-break" XSL Definition:
The "table-omit-footer-at-break" property specifies if a table whose last area is not at the end of an area produced by the table should end with the content of the fo:table-footer formatting object or not. 7.25.18 "table-omit-header-at-break" XSL Definition:
The "table-omit-header-at-break" property specifies if a table whose first area is not at the beginning of an area produced by the table should start with the content of the fo:table-header formatting object or not. 7.26 Writing-mode-related PropertiesThe properties in this section control the setting of the inline-progression-direction, the block-progression-direction and the orientation of the glyphs that are placed on a baseline in the inline-progression-direction. The "writing-mode" property sets both the "inline-progression-direction" and the "block-progression-direction"s. The glyph orientation properties, "glyph-orientation-horizontal" and "glyph-orientation-vertical" set the orientation of the glyph relative to the default glyph orientation. The default orientation for glyphs is with the top of the glyph oriented toward the top of the reference area of which the glyph area is a descendant; that is, the glyph orientation is the same as the reference-orientation of the reference area. Glyphs that are oriented at '90' or '-90' degrees from the reference-orientation are said to be rotated glyphs. Glyphs that are oriented 180 degrees from the reference-orientation are said to be inverted glyphs. The "direction" property (which is controlled by the "unicode-bidi" property) only affects text in which the orientation of the glyphs is perpendicular to the dominant-baseline. For horizontal writing-modes, the "direction" property only affects character sequences that generate glyphs that are not rotated. For vertical writing-modes, the "direction" property only affects character sequences that generate glyphs that are rotated. The following sample fragment of XML is used to illustrate the interaction between the "writing-mode," "direction" and "glyph-orientation-vertical" properties.
Markup of text in the next figure In the XML markup of the figure above, the characters are represented by their presentation form (and not their Unicode character codes). The order in which the characters are depicted is their storage order. The Hebrew characters in the third line are (from left to right) the first four letters of the Hebrew alphabet: aleph, beth, gimel and daleth. The generic identifiers in the XML markup are arbitrary, but are intended to suggest a sequence of text with two embedded text spans. The following figure shows the effect of specifying an assortment of values for the "direction" and "glyph-orientation-vertical" properties that are specified on the three elements in the above XML fragment. In all cases, the "writing-mode" is "tb-rl". And in all cases the Unicode Bidi Algorithm [UNICODE TR9] is applied to the characters that are the children or descendants of the <t> element, sometimes with explicit directional markup in terms of the "direction" property and other times using the intrinsic direction properties of the underlying characters. The Unicode Bidi Algorithm is applied as the last step of refinement (see [5 Property Refinement / Resolution]) and before mapping the characters to glyphs and applying any rotation due to a glyph-orientation value. The figure shows seven possible presentations of the sample XML fragment, one with all glyphs having a vertical orientation and six with various combinations of a perpendicular glyph-orientation and direction. In the figure, the correct reading order of the glyphs (left-to-right for the Latin and right-to-left for the Hebrew sub-sequences) is shown by the (red) arrow that is placed on the alphabetic baseline under the glyphs. The six combinations of the "direction" and "glyph-orientation-vertical" properties that generated cases (2) through (7) have the property that they preserve the correct reading order when the glyphs are viewed upright. For some of the cases, it is necessary to turn the page one way to view the glyphs of one language and the opposite way to view the glyphs of the other language in an upright position. The reading order is preserved by combining a visual re-ordering of the glyphs using the Unicode Bidi Algorithm with a glyph-orientation that ensures the proper reading order for the ordering of the glyphs that results from the Unicode Bidi Algorithm. Sometimes it is necessary to explicitly specify the "direction" property to force the desired visual ordering of the glyphs. The property specifications that yield the six presentations are given in the table that follows the figure.
Achievable rotations of Bidi text
NOTE: If paired punctuation characters, such as parentheses, had been included in one of the text spans, then these characters may need to be "mirrored" as described in the Unicode Bidi Algorithm. Mirroring a character means reversing the direction the character faces; for example, mirroring a left parenthesis makes it into a right parenthesis. This insures that the mirrored characters always face the text they surround. If the "glyph-orientation" of the characters to which the glyphs correspond is "90" and the embedding level in which the characters lie is odd, then the paired glyphs need to be mirrored. Alternatively, if the "glyph-orientation" of the characters to which the glyphs correspond is "-90" and the embedding level in which the characters lie is even, then the paired glyphs need to be mirrored. In the example above, parentheses that surround the Latin text would not be mirrored in cases (2), (3) and (8), but would need to be mirrored in cases (4) through (6). Conversely, parentheses that surround the Hebrew text would not be mirrored in cases (4) through (6), but would need to be mirrored in cases (2), (3), and (8). Within a string of vertical text, when the value of the "glyph-orientation-vertical" property is "90", then each affected glyph is rotated 90 degrees clockwise. This rotation changes the way the rotated glyph is aligned. The horizontal alignment-point of the rotated glyph is aligned with the appropriate baseline from the vertical baseline-table. The appropriate baseline is the baseline identified by the "alignment-baseline" property of the character(s) that generate the glyph area. For example, if the "alignment-baseline" property is not explicitly specified, Latin glyphs are aligned to the (vertical) "alphabetic" baseline and some Indic glyphs are aligned to the (vertical) "hanging" baseline. NOTE: The positions of the (vertical) baselines are chosen to insure that the rotated glyphs will not protrude too far (if at all) outside the line area for the vertical line when the "line-stacking-strategy" property has the value "line-height" or "font-height". In this case, we will say the rotated text is well aligned in the vertical line area. To preserve the property that rotated text in a vertical line is well aligned when the "glyph-orientation-vertical" property value is "-90", the vertical baseline-table must be reflected before the rotated text is aligned. Let C be the value of the offset to the "central" baseline in the baseline-table. A baseline-table is reflected by negating every offset in the baseline table (where negating "-N" yields "N") and adding 2 times C to each of the negated offsets. The "central" baseline is defined in [7.12 Area Alignment Properties]. This action is called "reflecting" because the offset from the original dominant baseline to any baseline in the reflected baseline-table places that baseline on the opposite side of the "central" baseline and the distance from the "central" baseline to that baseline is the same as was from the "central" baseline to that baseline in its original (un-reflected) position. In short, the positions of the baselines are reflected across the "central" baseline. NOTE: Reflecting is necessary, because both the "alphabetic" and the "hanging" baselines are near the outer edges of the vertical line area. If the glyph were simply rotated 180 degrees, then it would stick way out of the intended line area. This is prevented by reflecting the baselines for glyphs that are perpendicular to the dominant baseline and that are rotated 180 degrees from the direction for which that baseline was intended. This last statement applies as much to horizontal baselines as it does to vertical baselines.
The figure illustrates the positioning of rotated and inverted glyphs in both vertical and horizontal writing-modes. The three examples show first some glyphs typical of the writing mode and then some atypical glyphs in each of the possible orientations, 0, 90, 180 and -90 degrees, in that order. The alignment-point for each glyph is shown as a small "x" whose center is at the alignment-point. Example 1 shows the "tb-rl" vertical writing-mode. It has the ideographic glyph for "country" as its normal glyph and the two letters sequence, "Ap" as the glyphs that are rotated. Note that in the default orientation (0 degrees) and in the inverted orientation, the full width Latin glyphs are used; in the two other orientations, the proportional Latin glyphs are used. There is a small amount of whitespace between the proportional and the full width Latin glyphs. The dominant baseline is the "central" baseline which is shown in blue. The reflected baseline table is shown for the last (-90 degree) rotation. Note that the position of the "central" baseline does not change when the baseline table is reflected. For the inverted glyphs and the glyphs with a -90 degree rotation, the start-edge of the rotated glyph is on the opposite side from where it is in the un-rotated glyph; hence, the alignment-point on that start edge is not on the edge where the font tables normally place it. Examples 2 and 3 show the "lr-tb" horizontal writing-mode. They have the Latin glyph sequence, "Ap" as their normal glyphs. Example 2 rotates the syllabic Gurmukhi glyph for "ji" and example 3 rotates the ideographic glyph for "country". In example 2, the whole syllabic glyph is rotated as in indivisible unit. For the 90 and -90 degree rotations, the vertical alignment-point, aligning to the "central" baseline, is used in both Examples. Similarly, for the inverted glyph, the baseline table is reflected. For the glyphs with a 90 degree rotation and the inverted glyphs, the start-edge of the rotated glyph is on the opposite side from where it is in the un-rotated glyph; hence, the alignment-point on that start edge is not on the edge where the font tables normally place it. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-direction. This property specifies the base writing direction of blocks and the direction of embeddings and overrides (see [UNICODE TR9]) for the Unicode bidirectional algorithm. In addition, it specifies the direction of table column layout, the direction of horizontal overflow, and the position of an incomplete last line in a block in case of 'text-align: justify'. Values for this property have the following meanings:
For the 'direction' property to have any effect on inline-level elements, the 'unicode-bidi' property's value must be 'embed' or 'override'. NOTE: XSL modifications to the CSS definition:
7.26.2 "glyph-orientation-horizontal" XSL Definition:
Values have the following meanings:
This property specifies the orientation of glyphs relative to the path direction specified by the 'writing-mode'. This property is applied only to text written in a horizontal writing-mode. The value of this property affects both the alignment and width of the glyph-areas generated for the affected glyphs. If a glyph is oriented so that it is not perpendicular to the dominant-baseline, then the vertical alignment-point of the rotated glyph is aligned with the alignment-baseline appropriate to that glyph. The baseline to which the rotated glyph is aligned is the (horizontal) baseline identified by the "alignment-baseline" for the script to which the glyph belongs. The width of the glyph-area is determined from the vertical width font characteristic for the glyph. 7.26.3 "glyph-orientation-vertical" XSL Definition:
Values have the following meanings:
This property specifies the orientation of glyphs relative to the path direction specified by the writing-mode. This property is applied only text written with an inline-progression-direction top-to-bottom or bottom-to-top. Its most common usage is to differentiate between the preferred orientation of alphabetic text in vertically written Japanese documents (glyph-orientation="auto") vs. the orientation of alphabetic text in western signage and advertising (glyph-orientation="0deg"). The value of this property affects both the alignment and width of the glyph-areas generated for the affected glyphs. If a glyph is oriented so that it is perpendicular to the dominant-baseline, then the horizontal alignment-point of the rotated glyph is aligned with the alignment-baseline appropriate to that glyph. The baseline to which the rotated glyph is aligned is the (vertical) baseline identified by the "alignment-baseline" for the script to which the glyph belongs. The width of the glyph-area is determined from the horizontal width font characteristic for the glyph. XSL Definition:
Values have the following meanings:
Specifies the "height" to be used for the ascent above the dominant baseline. XSL Definition:
Values have the following meanings:
Specifies the "depth" to be used for the descent below the domiant baseline. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-unicode-bidi. Values have the following meanings:
The final order of characters in each block-level element is the same as if the bidi control codes had been added as described above, markup had been stripped, and the resulting character sequence had been passed to an implementation of the Unicode bidirectional algorithm for plain text that produced the same line-breaks as the styled text. In this process, non-textual entities such as images are treated as neutral characters, unless their 'unicode-bidi' property has a value other than 'normal', in which case they are treated as strong characters in the 'direction' specified for the element. Please note that in order to be able to flow inline boxes in a uniform direction (either entirely left-to-right or entirely right-to-left), more inline boxes (including anonymous inline boxes) may have to be created, and some inline boxes may have to be split up and reordered before flowing. Because the Unicode algorithm has a limit of 15 levels of embedding, care should be taken not to use 'unicode-bidi' with a value other than 'normal' unless appropriate. In particular, a value of 'inherit' should be used with extreme caution. However, for elements that are, in general, intended to be displayed as blocks, a setting of 'unicode-bidi: embed' is preferred to keep the element together in case display is changed to inline. XSL modifications to the CSS definition: The phrasing of the first paragraph of the general description (following the value breakouts) should read "The final order of presentation of the characters...". In Unicode 3.0, the Unicode Consortium has increased the limit of the levels of embedding to 61 (definition BD2 in [UNICODE TR9]). Fallback: If it is not possible to present the characters in the correct order, then the User Agent should display either and "unsupported character glyph" or display some indication that the content cannot be correctly rendered. XSL Definition:
NOTE: Values have the following meanings:
The "writing-mode" property applies only to formatting objects that set up a reference-area (for XSL these are: fo:simple-page-master, fo:region-*, fo:table, fo:block-container, and fo:inline-container. Each value of writing-mode sets all three of the direction traits indicated in each of the value descriptions above on the reference-area. (See the area model for a description of the direction traits and their usage.)
Implementations must support at least one of the "writing-mode" values defined in this Recommendation. 7.27 Miscellaneous PropertiesXSL Definition:
This property specifies the content-type and may be used by a User Agent to select a rendering processor for the object. Values for this property have the following meanings:
XSL Definition:
Values have the following meanings:
An identifier unique within all objects in the result tree with the fo: namespace. It allows references to this formatting object by other objects. The "inherit" value is not allowed on this property. The initial value of this property is random and unique identifier. The algorithm to generate this identifier is system-dependent. 7.27.3 "provisional-label-separation" XSL Definition:
Values have the following meanings:
NOTE: 7.27.4 "provisional-distance-between-starts" XSL Definition:
Values have the following meanings:
NOTE: XSL Definition:
Values have the following meanings:
Reference to the object having the specified unique identifier. XSL Definition:
Values have the following meanings:
Specifies whether the text-decoration property shall be applied to spaces. XSL Definition:
Values have the following meanings:
Specifies the URI reference to locate an external resource such as image/graphic data to be included as the content of this object, or color-profile data. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visufx.html#propdef-visibility. The 'visibility' property specifies whether the boxes generated by an element are rendered. Invisible boxes still affect layout (set the 'display' property to 'none' to suppress box generation altogether). Values have the following meanings:
This property may be used in conjunction with scripts to create dynamic effects. XSL modifications to the CSS definition: Changed initial value to visible; (it is "inherit" in CSS). CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-z-index. For a positioned box, the "z-index" property specifies: 1. The stack level of the box in the current stacking context. 2. Whether the box establishes a local stacking context. Values have the following meanings:
This example [see the CSS specification] demonstrates the notion of transparency. The default behavior of a box is to allow boxes behind it to be visible through transparent areas in its content. In the example, each box transparently overlays the boxes below it. This behavior can be overridden by using one of the existing background properties. 7.28 Shorthand PropertiesThe following properties are all shorthand properties. Shorthands are only included in the highest XSL conformance level: "complete". CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/colors.html#propdef-background. The "background" property is a shorthand property for setting the individual background properties (i.e., background-color, background-image, background-repeat, background-attachment and background-position) at the same place in the stylesheet. The "background" property first sets all the individual background properties to their initial values, then assigns explicit values given in the declaration. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/colors.html#propdef-background-position. If a "background-image" has been specified, this property specifies its initial position.
If only one percentage or length value is given, it sets the horizontal position only, the vertical position will be 50%. If two values are given, the horizontal position comes first. Combinations of length and percentage values are allowed, (e.g., 50% 2cm). Negative positions are allowed. Keywords cannot be combined with percentage values or length values (all possible combinations are given above). If the background image is fixed within the viewport (see the "background-attachment" property), the image is placed relative to the viewport instead of the elements padding area. XSL modifications to the CSS definition: The CSS property shall be treated as a shorthand by XSL and maps as follows:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border. The "border" property is a shorthand property for setting the same width, color, and style for all four borders, top, bottom, left, and right, of a box. Unlike the shorthand "margin" and "padding" properties, the "border" property cannot set different values on the four borders. To do so, one or more of the other border properties must be used. XSL modifications to the CSS definition: Refer to [5.3.1 Border and Padding Properties] for information on the precedence order of properties. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-bottom. A shorthand property for setting the width, style, and color of the bottom border of a block-area or inline-area. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-color. The 'border-color' property sets the color of the four borders. Values have the following meanings:
The "border-color" property can have from one to four values, and the values are set on the different sides as for "border-width". If an element's border color is not specified with a "border" property, user agents must use the value of the element's "color" property as the computed value for the border color. XSL modifications to the CSS definition: See the 'border-width' property for a description of how this property is interpreted when one through four values are provided. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-left. A shorthand property for setting the width, style, and color of the left border of a block-area or inline-area. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-right. A shorthand property for setting the width, style, and color of the right border of a block-area or inline-area. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-style. The "border-style" property sets the style of the four borders. It can have from one to four values, and the values are set on the different sides. XSL modifications to the CSS definition: See the 'border-width' property for a description of how this property is interpreted when one through four values are provided. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/tables.html#propdef-border-spacing.
The lengths specify the distance that separates adjacent cell borders. If one length is specified, it gives both the horizontal and vertical spacing. If two are specified, the first gives the horizontal spacing and the second the vertical spacing. Lengths may not be negative. In the separate borders model, each cell has an individual border. The "border-spacing" property specifies the distance between the borders of adjacent cells. This space is filled with the background of the table element. Rows, columns, row groups, and column groups cannot have borders (i.e., user agents must ignore the border properties for those elements). XSL modifications to the CSS definition: The CSS property shall be treated as a shorthand by XSL and maps as follows: If one value is specified the "border-separation.block-progression-direction" and "border-separation.inline-progression-direction" are both set to that value. If two values are specified the "border-separation.block-progression-direction" is set to the second value and "border-separation.inline-progression-direction" are both set to the first value. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-top. A shorthand property for setting the width, style, and color of the top border of a block-area or inline-area. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-border-width. This property is a shorthand property for setting "border-top-width", "border-right-width", "border-bottom-width", and "border-left-width" at the same place in the stylesheet. If there is only one value, it applies to all sides. If there are two values, the top and bottom borders are set to the first value and the right and left are set to the second. If there are three values, the top is set to the first value, the left and right are set to the second, and the bottom is set to the third. If there are four values, they apply to the top, right, bottom, and left, respectively. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-cue. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/fonts.html#propdef-font. The "font" property is, except as described below, a shorthand property for setting "font-style", "font-variant", "font-weight", "font-size", "line-height", and "font-family", at the same place in the stylesheet. The syntax of this property is based on a traditional typographical shorthand notation to set multiple properties related to fonts. All font-related properties are first reset to their initial values, including those listed in the preceding paragraph plus "font-stretch" and "font-size-adjust". Then, those properties that are given explicit values in the "font" shorthand are set to those values. For a definition of allowed and initial values, see the previously defined properties. For reasons of backward compatibility, it is not possible to set "font-stretch" and "font-size-adjust" to other than their initial values using the "font" shorthand property; instead, set the individual properties. The following [first six] values refer to system fonts:
System fonts may only be set as a whole; that is, the "font-family", "size", "weight", "style", etc. are all set at the same time. These values may then be altered individually if desired. If no font with the indicated characteristics exists on a given platform, the user agent should either intelligently substitute (e.g., a smaller version of the "caption" font might be used for the "smallcaption" font), or substitute a user agent default font. As for regular fonts, if, for a system font, any of the individual properties are not part of the operating system's available user preferences, those properties should be set to their initial values. That is why this property is "almost" a shorthand property: system fonts can only be specified with this property, not with "font-family" itself, so "font" allows authors to do more than the sum of its sub-properties. However, the individual properties such as "font-weight" are still given values taken from the system font, which can be independently varied. XSL modifications to the CSS definition: In XSL the "font" property is a pure shorthand property. System font characteristics, such as font-family, and font-size, may be obtained by the use of the "system-font" function in the expression language. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-margin. A shorthand property for setting margin-top, margin-right, margin-bottom, and margin-left of a block-area or inline-area. If there is only one value, it applies to all sides. If there are two values, the top and bottom margins are set to the first value and the right and left margins are set to the second. If there are three values, the top is set to the first value, the left and right are set to the second, and the bottom is set to the third. If there are four values, they apply to the top, right, bottom, and left, respectively. XSL modifications to the CSS definition:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/box.html#propdef-padding. A shorthand property for setting padding-top, padding-bottom, padding-left, and padding-right of a block-area or inline-area. If there is only one value, it applies to all sides. If there are two values, the top and bottom paddings are set to the first value and the right and left paddings are set to the second. If there are three values, the top is set to the first value, the left and right are set to the second, and the bottom is set to the third. If there are four values, they apply to the top, right, bottom, and left, respectively. The surface color or image of the padding area is specified via the "background" property. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/page.html#propdef-page-break-after. Values for these properties have the following meanings:
A potential page break location is typically under the influence of the parent element's 'page-break-inside' property, the 'page-break-after' property of the preceding element, and the 'page-break-before' property of the following element. When these properties have values other than 'auto', the values 'always', 'left', and 'right' take precedence over 'avoid'. See the section on allowed page breaks for the exact rules on how these properties may force or suppress a page break. XSL modifications to the CSS definition: The CSS property shall be treated as a shorthand by XSL and maps as follows:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/page.html#propdef-page-break-before. Values for these properties have the following meanings:
A potential page break location is typically under the influence of the parent element's 'page-break-inside' property, the 'page-break-after' property of the preceding element, and the 'page-break-before' property of the following element. When these properties have values other than 'auto', the values 'always', 'left', and 'right' take precedence over 'avoid'. See the section on allowed page breaks for the exact rules on how these properties may force or suppress a page break. XSL modifications to the CSS definition: The CSS property shall be treated as a shorthand by XSL and maps as follows:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/page.html#propdef-page-break-inside. NOTE: Values for this property have the following meanings:
A potential page break location is typically under the influence of the parent element's 'page-break-inside' property, the 'page-break-after' property of the preceding element, and the 'page-break-before' property of the following element. When these properties have values other than 'auto', values 'always', 'left', and 'right' take precedence over 'avoid'. See the section on allowed page breaks for the exact rules on how these properties may force or suppress a page break. XSL modifications to the CSS definition: XSL treats this as a shorthand and maps it as follows.
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/aural.html#propdef-pause. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-position. Values have the following meanings:
Specifies the positioning scheme to be used. XSL modifications to the CSS definition: The CSS property shall be treated as a shorthand by XSL and maps as follows:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/page.html#propdef-size. This property specifies the size and orientation of a page box. The size of a page box may either be "absolute" (fixed size) or "relative" (scalable, i.e., fitting available sheet sizes). Relative page boxes allow user agents to scale a document and make optimal use of the target size. [The first] Three values for the 'size' property create a relative page box:
User agents may allow users to control the transfer of the page box to the sheet (e.g., rotating an absolute page box that's being printed).
XSL modifications to the CSS definition: This is treated as a CSS shorthand property that is mapped to XSL's "page-height" and "page-width" properties. CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/visudet.html#propdef-vertical-align. This property affects the vertical positioning inside a line box of the boxes generated by an inline-level element. The following values only have meaning with respect to a parent inline-level element, or to a parent block-level element, if that element generates anonymous inline boxes; they have no effect if no such parent exists. NOTE: Values have the following meanings:
NOTE: XSL modifications to the CSS definition: The CSS property shall be treated as a shorthand by XSL and maps as follows:
CSS2 Definition:
CSS2 Reference: http://www.w3.org/TR/REC-CSS2/text.html#propdef-white-space. This property declares how whitespace inside the element is handled. Values have the following meanings:
Conforming user agents may ignore the 'white-space' property in author and user style sheets but must specify a value for it in the default style sheet. XSL modifications to the CSS definition: XSL splits control of whitespace collapsing, space and linefeed handling, and wrapping into separate properties. The CSS property shall be treated as a shorthand by XSL and maps as follows:
XSL Definition:
Values have the following meanings:
Specifies the language and country to be used by the formatter in linguistic services (such as hyphenation) and in the determination of line breaks. This affects line composition in a system-dependent way. The string may be any RFC 1766 code. XSL treats xml:lang as a shorthand and uses it to set the country and language properties. NOTE: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
With any suggestions or questions please feel free to contact us |