Previous

Table of Contents

Bottom     

Next     


Quick Table of Contents
7 Formatting Properties
    7.1 Description of Property Groups
    7.2 XSL Areas and the CSS Box Model
    7.3 Reference Rectangle for Percentage Computations
    7.4 Common Accessibility Properties
    7.5 Common Absolute Position Properties
    7.6 Common Aural Properties
    7.7 Common Border, Padding, and Background Properties
    7.8 Common Font Properties
    7.9 Common Hyphenation Properties
    7.10 Common Margin Properties-Block
    7.11 Common Margin Properties-Inline
    7.12 Common Relative Position Properties
    7.13 Area Alignment Properties
    7.14 Area Dimension Properties
    7.15 Block and Line-related Properties
    7.16 Character Properties
    7.17 Color-related Properties
    7.18 Float-related Properties
    7.19 Keeps and Breaks Properties
    7.20 Layout-related Properties
    7.21 Leader and Rule Properties
    7.22 Properties for Dynamic Effects Formatting Objects
    7.23 Properties for Markers
    7.24 Properties for Number to String Conversion
    7.25 Pagination and Layout Properties
    7.26 Table Properties
    7.27 Writing-mode-related Properties
    7.28 Miscellaneous Properties
    7.29 Shorthand Properties

7 Formatting Properties

7.1 Description of Property Groups

The 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].

Properties copied from CSS2 are placed in a box with wide black borders, and properties derived from CSS2 properties are placed in a box with thin black borders.

7.2 XSL Areas and the CSS Box Model

This 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, except in the "Applies to" summary, it should be taken to refer to a "formatting object".

The CSS term, positioned element will in XSL be taken as referring to an XSL FO that has one of the following: an "absolute-position" property with a computed value other than "auto" and/or a "relative-position" property with a computed value other than "static".

NOTE:

Since in XSL, the "position" property is a shorthand for the "absolute-position" and "relative-position" properties, this is equivalent to the CSS definition.

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.

BoxArea
top content edgetop edge of the content-rectangle
padding edgepadding-rectangle
content areainterior of the content-rectangle
padding arearegion between the content-rectangle and the padding-rectangle
border arearegion between the padding-rectangle and the border-rectangle
backgroundbackground
containing blockclosest ancestor block-area that is not a line-area (see below for additional information when the "containing block" is used as a reference for percentage calculations)
captionarea generated by fo:table-caption
inline boxinline-area
line boxline-area
block boxblock-area which is not a line-area
page boxpage-area

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 Reference Rectangle for Percentage Computations

Allowed conversions for percentages, specified on the property definition, is typically in terms of the content-rectangle of some area. That area is determined as follows:

  1. For properties defined in CSS2 referring to the "containing block" the content-rectangle of the closest ancestor block-area that is not a line-area is used.

  2. For properties defined by XSL, the property definition specifies which area's content-rectangle is used.

  3. Exceptions to the rules above for determining which area is used are:

    1. When used on fo:root, fo:page-sequence, and fo:title and any descendant of fo:title where there is no ancestor block-area the rectangle used has the dimensions corresponding to the "auto" value of the "page-height" and "page-width" properties. The block-progression-dimension and inline-progression-dimension is then determined based on the computed value of the reference-orientation and writing-mode on the formatting object for which the percentage is computed, or on fo:title in the case of a descentdant of fo:title.

    2. When used on fo:static-content and fo:flow the content rectangle used is based on the region on the first page into which the content is directed. For region-body it is the normal-flow-reference-area and for the other regions it is the region-reference-area.

    3. When used on fo:footnote-body, and fo:float that generates an area with area-class "xsl-before-float" the rectangle used is the content rectangle of the footnote-reference-area and the before-float-reference-area respectively.

    4. When used on fo:float that generates an area with area-class "xsl-side-float" the content rectangle used is the closest ancestor block-area that is not a line-area of the area of area-type "xsl-anchor" that was generated by the fo:float.

    5. When the absolute-position is "fixed", the containing block is defined by the nearest ancestor viewport area. If there is no ancestor viewport area, the containing block is defined by the user agent.

    6. When the absolute-position is "absolute", the containing block is established by the nearest ancestor area A which has an area-class different from xsl-normal or a relative-position of "relative".

      In the case where A is a block-area, the rectangle used is the padding-rectangle of A.

      In the case where A is an inline-area, generated by some formatting object F, the rectangle used is a virtual rectangle whose before-edge and start-edge are the before-edge and start-edge of the first area generated by F, and whose after-edge and end-edge are the after-edge and end-edge of the last area generated by F. This "rectangle" may have negative extent.

  4. If the formatting object generating the identified area generates a sequence of such areas the first area is used for the conversion.

7.4 Common Accessibility Properties

7.4.1 "source-document"

XSL Definition:

Value: <uri-specification> [<uri-specification>]* | none | inherit
Initial: none
Applies to: see prose
Inherited: no
Percentages: N/A
Media: all

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:

none

The source document is transient, unknown, or unspecified.

<uri-specification>

A URI-specification giving a reference to the (sub)resource used as input to the stylesheet.

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, http://www.w3.org/TR/WCAG20/, http://www.w3.org/TR/ATAG10/, and http://www.w3.org/TR/UAAG10/, 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.

7.4.2 "role"

XSL Definition:

Value: <string> | <uri-specification> | none | inherit
Initial: none
Applies to: see prose
Inherited: no
Percentages: N/A
Media: all

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:

none

Indicates that no semantic tag is cited by this formatting object.

<string>

The value is a string representing a semantic identifier that may be used in rendering this formatting object.

<uri-specification>

A URI-specification, indicating an RDF resource [RDF]; that is, an XML object that is syntactically valid with respect to the RDF grammar.

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 [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.5 Common Absolute Position Properties

7.5.1 "absolute-position"

A Property Derived from a CSS2 Property.

Value: auto | absolute | fixed | inherit
Initial: auto
Applies to: fo:block-container
Inherited: no
Percentages: N/A
Media: visual

Values have the following meanings:

auto

There is no absolute-positioning constraint. Positioning is in accordance with the relative-position property.

absolute

The area's position (and possibly size) is specified with the "left", "right", "top", and "bottom" properties. These properties specify offsets with respect to the area's containing area. Absolutely positioned areas are taken out of the normal flow. This means they have no impact on the layout of later siblings. Also, though absolutely positioned areas have margins, they do not collapse with any other margins.

fixed

The area's position is calculated according to the "absolute" model, but in addition, the area is fixed with respect to some reference. In the case of continuous media, the area is fixed with respect to the viewport (and doesn't move when scrolled). In the case of paged media, the area is fixed with respect to the page, even if that page is seen through a viewport (in the case of a print-preview, for example). Authors may wish to specify "fixed" in a media-dependent way. For instance, an author may want an area to remain at the top of the viewport on the screen, but not at the top of each printed page.

The following additional restrictions apply for paged presentations:

7.5.2 "top"

CSS2 Definition: as amended by http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html#x12

Value: <length> | <percentage> | auto | inherit
Initial: auto
Applies to: positioned elements
Inherited: no
Percentages: refer to height of containing block
Media: visual

CSS2 Reference: "top" property
http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-top

This property specifies how far a box's top margin 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.5.5 "left"]).

7.5.3 "right"

CSS2 Definition: as amended by http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html#x12

Value: <length> | <percentage> | auto | inherit
Initial: auto
Applies to: positioned elements
Inherited: no
Percentages: refer to width of containing block
Media: visual

CSS2 Reference: "right" property
http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-right

This property specifies how far a box's right margin 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.5.5 "left"]).

7.5.4 "bottom"

CSS2 Definition: as amended by http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html#x12

Value: <length> | <percentage> | auto | inherit
Initial: auto
Applies to: positioned elements
Inherited: no
Percentages: refer to height of containing block
Media: visual

CSS2 Reference: "bottom" property
http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-bottom

This property specifies how far a box's bottom margin edge is offset above the bottom edge of the box's containing block.

XSL modifications to the CSS definition:

See definition of property left ([7.5.5 "left"]).

7.5.5 "left"

CSS2 Definition: as amended by http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html#x12

Value: <length> | <percentage> | auto | inherit
Initial: auto
Applies to: positioned elements
Inherited: no
Percentages: refer to width of containing block
Media: visual

CSS2 Reference: "left" property
http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-left

This property specifies how far a box's left margin 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:

auto

The effect of this value depends on which of related properties have the value "auto" as well. See the sections on the width and height of absolutely positioned, non-replaced elements for details.

<length>

The offset is a fixed distance from the reference edge.

<percentage>

The offset is a percentage of the containing block's width (for "left" or "right") or "height" (for "top" and "bottom"). For "top" and "bottom", if the "height" of the containing block is not specified explicitly (i.e., it depends on content height), the percentage value is interpreted like "auto".

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 "left" and "right" have a value other than "auto", then if the "width" is "auto" the width of the content-rectangle is overridden; else the geometry is overconstrained and is resolved in accordance with [5.3.4 Overconstrained Geometry]. Similarly, if both "top" and "bottom" have a value other than "auto", then if the "height" is "auto" the height of the content-rectangle is overridden; else the geometry is overconstrained and is resolved in accordance with [5.3.4 Overconstrained Geometry].

7.6 Common Aural Properties

7.6.1 "azimuth"

CSS2 Definition:

Value: <angle> | [[ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards | inherit
Initial: center
Applies to: all elements
Inherited: yes
Percentages: N/A
Media: aural

CSS2 Reference: "azimuth" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-azimuth

7.6.2 "cue-after"

CSS2 Definition:

Value: <uri-specification> | none | inherit
Initial: none
Applies to: all elements
Inherited: no
Percentages: N/A
Media: aural

CSS2 Reference: "cue-after" property
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>.

7.6.3 "cue-before"

CSS2 Definition:

Value: <uri-specification> | none | inherit
Initial: none
Applies to: all elements
Inherited: no
Percentages: N/A
Media: aural

CSS2 Reference: "cue-before" property
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>.

7.6.4 "elevation"

CSS2 Definition:

Value: <angle> | below | level | above | higher | lower | inherit
Initial: level
Applies to: all elements
Inherited: yes
Percentages: N/A
Media: aural

CSS2 Reference: "elevation" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-elevation

7.6.5 "pause-after"

CSS2 Definition:

Value: <time> | <percentage> | inherit
Initial: depends on user agent
Applies to: all elements
Inherited: no
Percentages: see prose
Media: aural

CSS2 Reference: "pause-after" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-pause-after

7.6.6 "pause-before"

CSS2 Definition:

Value: <time> | <percentage> | inherit
Initial: depends on user agent
Applies to: all elements
Inherited: no
Percentages: see prose
Media: aural

CSS2 Reference: "pause-before" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-pause-before

7.6.7 "pitch"

CSS2 Definition:

Value: <frequency> | x-low | low | medium | high | x-high | inherit
Initial: medium
Applies to: all elements
Inherited: yes
Percentages: N/A
Media: aural

CSS2 Reference: "pitch" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-pitch

7.6.8 "pitch-range"

CSS2 Definition:

Value: <number> | inherit
Initial: 50
Applies to: all elements
Inherited: yes
Percentages: N/A
Media: aural

CSS2 Reference: "pitch-range" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-pitch-range

7.6.9 "play-during"

CSS2 Definition:

Value: <uri-specification> mix? repeat? | auto | none | inherit
Initial: auto
Applies to: all elements
Inherited: no
Percentages: N/A
Media: aural

CSS2 Reference: "play-during" property
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>.

7.6.10 "richness"

CSS2 Definition:

Value: <number> | inherit
Initial: 50
Applies to: all elements
Inherited: yes
Percentages: N/A
Media: aural

CSS2 Reference: "richness" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-richness

7.6.11 "speak"

CSS2 Definition:

Value: normal | none | spell-out | inherit
Initial: normal
Applies to: all elements
Inherited: yes
Percentages: N/A
Media: aural

CSS2 Reference: "speak" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-speak

7.6.12 "speak-header"

CSS2 Definition:

Value: once | always | inherit
Initial: once
Applies to: elements that have table header information
Inherited: yes
Percentages: N/A
Media: aural

CSS2 Reference: "speak-header" property
http://www.w3.org/TR/REC-CSS2/tables.html#propdef-speak-header

7.6.13 "speak-numeral"

CSS2 Definition:

Value: digits | continuous | inherit
Initial: continuous
Applies to: all elements
Inherited: yes
Percentages: N/A
Media: aural

CSS2 Reference: "speak-numeral" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-speak-numeral

7.6.14 "speak-punctuation"

CSS2 Definition:

Value: code | none | inherit
Initial: none
Applies to: all elements
Inherited: yes
Percentages: N/A
Media: aural

CSS2 Reference: "speak-punctuation" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-speak-punctuation

7.6.15 "speech-rate"

CSS2 Definition:

Value: <number> | x-slow | slow | medium | fast | x-fast | faster | slower | inherit
Initial: medium
Applies to: all elements
Inherited: yes
Percentages: N/A
Media: aural

CSS2 Reference: "speech-rate" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-speech-rate

7.6.16 "stress"

CSS2 Definition:

Value: <number> | inherit
Initial: 50
Applies to: all elements
Inherited: yes
Percentages: N/A
Media: aural

CSS2 Reference: "stress" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-stress

7.6.17 "voice-family"

CSS2 Definition:

Value: [[<specific-voice> | <generic-voice> ],]* [<specific-voice> | <generic-voice> ] | inherit
Initial: depends on user agent
Applies to: all elements
Inherited: yes
Percentages: N/A
Media: aural

CSS2 Reference: "voice-family" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-voice-family

7.6.18 "volume"

CSS2 Definition:

Value: <number> | <percentage> | silent | x-soft | soft | medium | loud | x-loud | inherit
Initial: medium
Applies to: all elements
Inherited: yes
Percentages: refer to inherited value
Media: aural

CSS2 Reference: "volume" property
http://www.w3.org/TR/REC-CSS2/aural.html#propdef-volume

7.7 Common Border, Padding, and Background Properties

The 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.

7.7.1 "background-attachment"

CSS2 Definition:

Value: scroll | fixed | inherit
Initial: scroll
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "background-attachment" property
http://www.w3.org/TR/REC-CSS2/colors.html#propdef-background-attachment

scroll

The background-image may scroll with the enclosing object.

fixed

The background-image is to be fixed within the viewable area of the enclosing object.

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.

7.7.2 "background-color"

CSS2 Definition:

Value: <color> | transparent | inherit
Initial: transparent
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "background-color" property
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.

transparent

The underlying colors will shine through.

<color>

Any valid color specification.

XSL modifications to the CSS definition:

XSL adds an "rgb-icc" function (see [5.10.2 Color Functions]) as a valid value of this property.

7.7.3 "background-image"

CSS2 Definition:

Value: <uri-specification> | none | inherit
Initial: none
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "background-image" property
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.

none

No image is specified.

<uri-specification>

XSL modifications to the CSS definition:

The <uri> value has been changed to a <uri-specification>.

7.7.4 "background-repeat"

CSS2 Definition:

Value: repeat | repeat-x | repeat-y | no-repeat | inherit
Initial: repeat
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "background-repeat" property
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:

repeat

The image is repeated both horizontally and vertically.

repeat-x

The image is repeated horizontally only.

repeat-y

The image is repeated vertically only.

no-repeat

The image is not repeated: only one copy of the image is drawn.

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:

Thus for a rotated area the tiling is also rotated. It is, however, independent of the writing-mode.

7.7.5 "background-position-horizontal"

A Property Derived from a CSS2 Property.

Value: <percentage> | <length> | left | center | right | inherit
Initial: 0%
Applies to: all formatting objects to which background applies
Inherited: no
Percentages: refer to the size of the padding-rectangle
Media: visual

If a "background-image" has been specified, this property specifies its initial position horizontally.

<percentage>

Specifies that a point, at the given percentage across the image from left-to-right, shall be placed at a point at the given percentage across, from left-to-right, the area's padding-rectangle.

NOTE:

For example with a value of 0%, the left-edge of the image is aligned with the left-edge of the area's padding-rectangle. A value of 100% places the right-edge of the image aligned with the right-edge of the padding-rectangle. With a value of 14%, a point 14% across the image is to be placed at a point 14% across the padding-rectangle.

<length>

Specifies that the left-edge of the image shall be placed at the specified length to the right of the left-edge of the padding-rectangle.

NOTE:

For example with a value of 2cm, the left-edge of the image is placed 2cm to the right of the left-edge of the padding-rectangle.

left

Same as 0%.

center

Same as 50%.

right

Same as 100%.

XSL modifications to the CSS definition:

"Left" and "right" are defined relative to the reference-orientation.

7.7.6 "background-position-vertical"

A Property Derived from a CSS2 Property.

Value: <percentage> | <length> | top | center | bottom | inherit
Initial: 0%
Applies to: all formatting objects to which background applies
Inherited: no
Percentages: refer to the size of the padding-rectangle
Media: visual

If a "background-image" has been specified, this property specifies its initial position vertically.

<percentage>

Specifies that a point, at the given percentage down the image from top-to-bottom, shall be placed at a point at the given percentage down, from top-to-bottom, the area's padding-rectangle.

NOTE:

For example with a value of 0%, the top-edge of the image is aligned with the top-edge of the area's padding-rectangle. A value of 100% places the bottom-edge of the image aligned with the bottom-edge of the padding-rectangle. With a value of 84%, a point 84% down the image is to be placed at a point 84% down the padding-rectangle.

<length>

Specifies that the top-edge of the image shall be placed at the specified length below the top-edge of the padding-rectangle.

NOTE:

For example with a value of 2cm, the top-edge of the image is placed 2cm below the top-edge of the padding-rectangle.

top

Same as 0%.

center

Same as 50%.

bottom

Same as 100%.

XSL modifications to the CSS definition:

"Top" and "bottom" are defined relative to the reference-orientation.

7.7.7 "border-before-color"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <color> | inherit
Initial: the value of the 'color' property
Applies to: see prose
Inherited: no
Percentages: N/A
Media: visual

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.7.19 "border-top-color"]).

7.7.8 "border-before-style"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <border-style> | inherit
Initial: none
Applies to: see prose
Inherited: no
Percentages: N/A
Media: visual

Specifies the border-style for the before-edge.

See definition of property border-top-style ([7.7.20 "border-top-style"]).

7.7.9 "border-before-width"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <border-width> | <length-conditional> | inherit
Initial: medium
Applies to: see prose
Inherited: no
Percentages: N/A
Media: visual

Specifies the border-width for the before-edge.

See definition of property border-top-width ([7.7.21 "border-top-width"]).

XSL modifications to the CSS definition:

The following value type has been added for XSL:

<length-conditional>

A compound value specifying the width and any conditionality of the border for the before-edge.

The .length component is a <length>. It may not be negative. The .conditionality component may be set to "discard" or "retain" to control if the border should be 0pt or retained if its associated edge is a leading-edge in a reference-area for areas generated from this formatting object that have an is-first value of "false". See [4.3 Spaces and Conditionality] for further details. The initial value of the .conditionality component is "discard".

If border-before-width is specified using <length>, the formatter shall convert the single value to components as follows:

If border-before-width is specified using one of the width keywords the .conditional component is set to "discard" and the .length component to a User Agent dependent length.

NOTE:

If the border-style is "none" the computed value of the width is forced to "0pt".

7.7.10 "border-after-color"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <color> | inherit
Initial: the value of the 'color' property
Applies to: see prose
Inherited: no
Percentages: N/A
Media: visual

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.7.19 "border-top-color"]).

7.7.11 "border-after-style"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <border-style> | inherit
Initial: none
Applies to: see prose
Inherited: no
Percentages: N/A
Media: visual

Specifies the border-style for the after-edge.

See definition of property border-top-style ([7.7.20 "border-top-style"]).

7.7.12 "border-after-width"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <border-width> | <length-conditional> | inherit
Initial: medium
Applies to: see prose
Inherited: no
Percentages: N/A
Media: visual

Specifies the border-width for the after-edge.

See definition of property border-top-width ([7.7.21 "border-top-width"]).

XSL modifications to the CSS definition:

The following value type has been added for XSL:

<length-conditional>

A compound value specifying the width and any conditionality of the border for the after-edge.

The .length component is a <length>. It may not be negative. The .conditionality component may be set to "discard" or "retain" to control if the border should be 0 or retained if its associated edge is a trailing-edge in a reference-area for areas generated from this formatting object that have an is-last value of "false". See [4.3 Spaces and Conditionality] for further details. The initial value of the .conditionality component is "discard".

NOTE:

If the border-style is "none" the computed value of the width is forced to "0pt".

7.7.13 "border-start-color"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <color> | inherit
Initial: the value of the 'color' property
Applies to: see prose
Inherited: no
Percentages: N/A
Media: visual

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.7.19 "border-top-color"]).

7.7.14 "border-start-style"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <border-style> | inherit
Initial: none
Applies to: see prose
Inherited: no
Percentages: N/A
Media: visual

Specifies the border-style for the start-edge.

See definition of property border-top-style ([7.7.20 "border-top-style"]).

7.7.15 "border-start-width"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <border-width> | <length-conditional> | inherit
Initial: medium
Applies to: see prose
Inherited: no
Percentages: N/A
Media: visual

Specifies the border-width for the start-edge.

NOTE:

If the border-style is "none" the computed value of the width is forced to "0pt".

See definition of property border-top-width ([7.7.21 "border-top-width"]).

XSL modifications to the CSS definition:

The following value type has been added for XSL:

<length-conditional>

A compound value specifying the width and any conditionality of the border for the start-edge.

The .length component is a <length>. It may not be negative. The .conditionality component may be set to "discard" or "retain" to control if the border should be 0 or retained if its associated edge is a leading-edge in a line-area for areas generated from this formatting object that have an is-first value of "false". See [4.3.1 Space-resolution Rules] for further details. The initial value of the .conditionality component is "discard".

7.7.16 "border-end-color"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <color> | inherit
Initial: the value of the 'color' property
Applies to: see prose
Inherited: no
Percentages: N/A
Media: visual

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.7.19 "border-top-color"]).

7.7.17 "border-end-style"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <border-style> | inherit
Initial: none
Applies to: see prose
Inherited: no
Percentages: N/A
Media: visual

Specifies the border-style for the end-edge.

See definition of property border-top-style ([7.7.20 "border-top-style"]).

7.7.18 "border-end-width"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <border-width> | <length-conditional> | inherit
Initial: medium
Applies to: see prose
Inherited: no
Percentages: N/A
Media: visual

Specifies the border-width for the end-edge.

NOTE:

If the border-style is "none" the computed value of the width is forced to "0pt".

See definition of property border-top-width ([7.7.21 "border-top-width"]).

XSL modifications to the CSS definition:

The following value type has been added for XSL:

<length-conditional>

A compound value specifying the width and any conditionality of the border for the end-edge.

The .length component is a <length>. It may not be negative. The .conditionality component may be set to "discard" or "retain" to control if the border should be 0 or retained if its associated edge is a trailing-edge in a line-area for areas generated from this formatting object that have an is-last value of "false". See [4.3.1 Space-resolution Rules] for further details. The initial value of the .conditionality component is "discard".

7.7.19 "border-top-color"

CSS2 Definition:

Value: <color> | inherit
Initial: the value of the 'color' property
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "border-top-color" property
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:

<color>

Any valid color specification.

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.

7.7.20 "border-top-style"

CSS2 Definition: as amended by http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html#x9

Value: <border-style> | inherit
Initial: none
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "border-top-style" property
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:

none

No border. This value forces the computed value of 'border-width' to be '0'.

hidden

Same as 'none', except in terms of border conflict resolution for table elements.

dotted

The border is a series of dots.

dashed

The border is a series of short line segments.

solid

The border is a single line segment.

double

The border is two solid lines. The sum of the two lines and the space between them equals the value of 'border-width'.

groove

The border looks as though it were carved into the canvas.

ridge

The opposite of 'groove': the border looks as though it were coming out of the canvas.

inset

The border makes the entire box look as though it were embedded in the canvas.

outset

The opposite of 'inset': the border makes the entire box look as though it were coming out of the canvas.

All borders are drawn on top of the box's background. The color of borders drawn for values of 'groove', 'ridge', 'inset', and 'outset' should be based on the element's 'border-color' property, but UAs may choose their own algorithm to calculate the actual colors used. For instance, if the 'border-color' has the value 'silver', then a UA could use a gradient of colors from white to dark gray to indicate a sloping border.

Conforming HTML user agents may interpret 'dotted', 'dashed', 'double', 'groove', 'ridge', 'inset', and 'outset' to be 'solid'.

7.7.21 "border-top-width"

CSS2 Definition:

Value: <border-width> | inherit
Initial: medium
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "border-top-width" property
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:

thin

A thin border.

medium

A medium border.

thick

A thick border.

<length>

The border's thickness has an explicit value. Explicit border widths cannot be negative.

The interpretation of the first three values depends on the user agent. The following relationships must hold, however:

7.7.22 "border-bottom-color"

CSS2 Definition:

Value: <color> | inherit
Initial: the value of the 'color' property
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "border-bottom-color" property
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.7.19 "border-top-color"]).

7.7.23 "border-bottom-style"

CSS2 Definition:

Value: <border-style> | inherit
Initial: none
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "border-bottom-style" property
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.7.20 "border-top-style"]).

7.7.24 "border-bottom-width"

CSS2 Definition:

Value: <border-width> | inherit
Initial: medium
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "border-bottom-width" property
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.7.21 "border-top-width"]).

7.7.25 "border-left-color"

CSS2 Definition:

Value: <color> | inherit
Initial: the value of the 'color' property
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "border-left-color" property
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.7.19 "border-top-color"]).

7.7.26 "border-left-style"

CSS2 Definition:

Value: <border-style> | inherit
Initial: none
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "border-left-style" property
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.7.20 "border-top-style"]).

7.7.27 "border-left-width"

CSS2 Definition:

Value: <border-width> | inherit
Initial: medium
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "border-left-width" property
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.7.21 "border-top-width"]).

7.7.28 "border-right-color"

CSS2 Definition:

Value: <color> | inherit
Initial: the value of the 'color' property
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "border-right-color" property
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.7.19 "border-top-color"]).

7.7.29 "border-right-style"

CSS2 Definition:

Value: <border-style> | inherit
Initial: none
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "border-right-style" property
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.7.20 "border-top-style"]).

7.7.30 "border-right-width"

CSS2 Definition:

Value: <border-width> | inherit
Initial: medium
Applies to: all elements
Inherited: no
Percentages: N/A
Media: visual

CSS2 Reference: "border-right-width" property
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.7.21 "border-top-width"]).

7.7.31 "padding-before"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <padding-width> | <length-conditional> | inherit
Initial: 0pt
Applies to: see prose
Inherited: no
Percentages: refer to width of containing block
Media: visual

Specifies the width of the padding on the before-edge of a block-area or inline-area.

See definition of property padding-top ([7.7.35 "padding-top"]).

XSL modifications to the CSS definition:

The following value type has been added for XSL:

<length-conditional>

A compound value specifying the width and any conditionality of the padding for the before-edge.

The .length component is a <length>. It may not be negative. The .conditionality component may be set to "discard" or "retain" to control if the padding should be 0 or retained if its associated edge is a leading-edge in a reference-area for areas generated from this formatting object that have an is-first value of "false". See [4.3 Spaces and Conditionality] for further details. The initial value of the .conditionality component is "discard".

7.7.32 "padding-after"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <padding-width> | <length-conditional> | inherit
Initial: 0pt
Applies to: see prose
Inherited: no
Percentages: refer to width of containing block
Media: visual

Specifies the width of the padding on the after-edge of a block-area or inline-area.

See definition of property padding-top ([7.7.35 "padding-top"]).

XSL modifications to the CSS definition:

The following value type has been added for XSL:

<length-conditional>

A compound value specifying the width and any conditionality of the padding for the after-edge.

The .length component is a <length>. It may not be negative. The .conditionality component may be set to "discard" or "retain" to control if the padding should be 0 or retained if its associated edge is a trailing-edge in a reference-area for areas generated from this formatting object that have an is-last value of "false". See [4.3 Spaces and Conditionality] for further details. The initial value of the .conditionality component is "discard".

7.7.33 "padding-start"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <padding-width> | <length-conditional> | inherit
Initial: 0pt
Applies to: see prose
Inherited: no
Percentages: refer to width of containing block
Media: visual

Specifies the width of the padding on the start-edge of a block-area or inline-area.

See definition of property padding-top ([7.7.35 "padding-top"]).

XSL modifications to the CSS definition:

The following value type has been added for XSL:

<length-conditional>

A compound value specifying the width and any conditionality of the padding for the start-edge.

The .length component is a <length>. It may not be negative. The .conditionality component may be set to "discard" or "retain" to control if the padding should be 0 or retained if its associated edge is a leading-edge in a line-area for areas generated from this formatting object that have an is-first value of "false". See [4.3.1 Space-resolution Rules] for further details. The initial value of the .conditionality component is "discard".

7.7.34 "padding-end"

Writing-mode Relative Equivalent of a CSS2 Property.

Value: <padding-width> | <length-conditional> | inherit
Initial: 0pt
Applies to: see prose
Inherited: no
Percentages: refer to width of containing block
Media: visual

Specifies the width of the padding on the end-edge of a block-area or inline-area.

See definition of property padding-top ([7.7.35 "padding-top"]).

XSL modifications to the CSS definition:

The following value type has been added for XSL:

<length-conditional>

A compound value specifying the width and any conditionality of the padding for the end-edge.

The .length component is a <length>. It may not be negative. The .conditionality component may be set to "discard" or "retain" to control if the padding should be 0 or retained if its associated edge is a trailing-edge in a line-area for areas generated from this formatting object that have an is-last value of "false". See [4.3.1 Space-resolution Rules] for further details. The initial value of the .conditionality component is "discard".

7.7.35 "padding-top"

CSS2 Definition:

Value: <padding-width> | inherit
Initial: 0pt
Applies to: all elements
Inherited: no
Percentages: refer to width of containing block
Media: visual

CSS2 Reference: "padding-top" property
http://www.w3.org/TR/REC-CSS2/box.html#propdef-padding-top

<length>

Specifies the width of the padding on the top-edge of a block-area or inline-area. Unlike margin properties, values for padding properties cannot be negative.

7.7.36 "padding-bottom"

CSS2 Definition:

Value: <padding-width> | inherit
Initial: 0pt
Applies to: all elements
Inherited: no
Percentages: refer to width of containing block
Media: visual

CSS2 Reference: "padding-bottom" property
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.7.35 "padding-top"]).

7.7.37 "padding-left"

CSS2 Definition:

Value: <padding-width> | inherit
Initial: 0pt
Applies to: all elements
Inherited: no
Percentages: refer to width of containing block
Media: visual

CSS2 Reference: "padding-left" property
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.7.35 "padding-top"]).

7.7.38 "padding-right"

CSS2 Definition:

Value: <padding-width> | inherit
Initial: 0pt
Applies to: all elements
Inherited: no
Percentages: refer to width of containing block
Media: visual

CSS2 Reference: "padding-right" property
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.7.35 "padding-top"]).

7.8 Common Font Properties

The following common-font-properties all are taken from CSS2. The reference to CSS2 is: http://www.w3.org/TR/REC-CSS2/fonts.html

NOTE:

Although these properties reference the individual properties in the CSS specification, it is recommended that you read the entire font section of the CSS2 specification.

7.8.1 Fonts and Font Data

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:

Most often, the (0,0) point in this coordinate system is positioned on the left edge of the em box, but not at the bottom left corner. The Y coordinate of the bottom of a Roman capital letter is usually zero. In addition, the descenders on lower case Roman letters have negative coordinate values.

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.

Three examples of baselines   [D]

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.

Horizontal and vertical baseline alignment   [D]

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.13 Area Alignment Properties] and [7.27 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.13.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.)

Baseline alignment of glyphs from different scripts   [D]

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:

If the font tables do not define values for required font characteristics, heuristics may be used to approximate these values.

7.8.2 "font-family"

CSS2 Definition: as amended by http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html#x73

Value: [[ <family-name> | <generic-family> ],]* [<family-name> | <generic-family>] | inherit
Initial: depends on user agent
Applies to: all elements
Inherited: yes
Percentages: N/A
Media: visual

CSS2 Reference: "font-family" property
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 sty