Stylus Studio XML Editor

Table of contents

Appendices

5.2 Shorthand Expansion

Shorthand Expansion

In XSL there are two kinds of shorthand properties; those originating from CSS, such as "border", and those that arise from breaking apart and/or combining CSS properties, such as "page-break-inside". In XSL both types of shorthands are handled in the same way.

NOTE: 

Shorthands are only included in the highest XSL conformance level: "complete" (see [conform] ).

The conformance level for each property is shown in [prtab2] .

Shorthand properties do not inherit from the shorthand on the parent. Instead the individual properties that the shorthand expands into may inherit.

Some CSS shorthands are interrelated; their expansion has one or more individual properties in common. CSS indicates that the user must specify the order of processing for combinations of multiple interrelated shorthands and individual interrelated properties. In XML, attributes are defined as unordered. To resolve this issue, XSL defines a precedence order when multiple interrelated shorthand properties or a shorthand property and an interrelated individual property are specified:

They are processed in increasing precision (i.e., "border" is less precise than "border-top", which is less precise than "border-top-color"). The individual properties are always more precise than any shorthand. For the remaining ambiguous case, XSL defines the ordering to be:

  1. "border-style", "border-color", and "border-width" is less precise than

  2. "border-top", "border-bottom", "border-right", and "border-left".

Processing is conceptually in the following steps:

  1. Set the effective value of all properties to their initial values.

  2. Process all shorthands in increasing precision.

    If the shorthand is set to "inherit": set the effective value of each property that can be set by the shorthand to the computed value of the corresponding property in the parent.

    If the value of the shorthand is not "inherit": determine which individual properties are to be set, and replace the initial value with the computed value derived from the specified value.

  3. Process all specified individual properties.

  4. Carry out any inheritance for properties that were not given a value other than by the first step.

NOTE: 

For example, if both the "background" and the "background-color" properties are specified on a given formatting object: process the "background" shorthand, then process the "background-color" property.