5.11 Property DatatypesProperty Datatypes
Certain property values are described in terms of compound
datatypes, in terms of restrictions on permitted number values, or
strings with particular semantics.
The compound datatypes, such as space, are represented in the
result tree as multiple attributes. The names of these attributes
consist of the property name, followed by a period, followed by
the component name. For example a "space-before" property may
be specified as:
space-before.minimum="2.0pt"
space-before.optimum="3.0pt"
space-before.maximum="4.0pt"
space-before.precedence="0"
space-before.conditionality="discard"
A short form of compound value specification may be used, in cases
where the datatype has some <length> components and for the
<keep> datatype. In the first case the
specification consists of giving a <length> value to an attribute
with a name matching a property name. Such a specification gives
that value to each of the <length> components and the initial value
to all the non-<length> components. For example:
space-before="4.0pt"
is equivalent to a specification of
space-before.minimum="4.0pt"
space-before.optimum="4.0pt"
space-before.maximum="4.0pt"
space-before.precedence="0"
space-before.conditionality="discard"
NOTE:
Since a <percentage> value,
that is not interpreted as "auto",
is a valid <length> value it may be used in a short form.
For the <keep> datatype the
specification consists of giving a value that is valid for a component
to an attribute
with a name matching a property name. Such a specification gives
that value to each of the components.
For example:
keep-together="always"
is equivalent to a specification of
keep-together.within-line="always"
keep-together.within-colums="always"
keep-together.within-page="always"
Short forms may be used together with complete forms; the complete
forms have precedence over the expansion of a short form.
For example:
space-before="4.0pt"
space-before.maximum="6.0pt"
is equivalent to a specification of
space-before.minimum="4.0pt"
space-before.optimum="4.0pt"
space-before.maximum="6.0pt"
space-before.precedence="0"
space-before.conditionality="discard"
Compound values of properties are inherited as a unit and not
as individual components.
After inheritance any complete form specification
for a component is used to set its value.
If the computed value of a corresponding relative property is
set from the corresponding absolute property, the latter is used
in determining all the components of the former.
NOTE:
For example, assuming a block-progression-direction of
"top-to-bottom", in a specification of
margin-top="10.0pt"
space-before.minimum="4.0pt"
the explicit setting of one of the components of the corresponding
relative property will have no effect.
The following defines the syntax for specifying the
datatypes usable in property values:
-
<integer>
-
A signed integer value which consists of an optional '+' or '-'
character followed by a sequence of digits.
A property may define additional constraints on the value.
NOTE:
A '+' sign is allowed for CSS2 compatibility.
-
<number>
-
A signed real number which consists of an optional '+' or '-'
character followed by a sequence of digits followed by an optional '.'
character and sequence of digits.
A property may define additional constraints on the value.
-
<length>
-
A signed length value where a 'length' is a real number plus a unit
qualification.
A property may define additional constraints on the value.
-
<length-range>
-
A compound datatype, with components:
minimum, optimum, maximum. Each component is a <length>.
If "minimum" is greater than optimum, it will be treated as if it had
been set to "optimum".
If "maximum" is less than optimum, it will be treated as if it had
been set to "optimum".
A property may define additional constraints on the values.
-
<length-conditional>
-
A compound datatype, with components:
length, conditionality. The length component is a <length>.
The conditionality component is either "discard" or "retain".
A property may define additional constraints on the values.
-
<length-bp-ip-direction>
-
A compound datatype, with components:
block-progression-direction, and inline-progression-direction.
Each component is a <length>.
A property may define additional constraints on the values.
-
<space>
-
A compound datatype, with components:
minimum, optimum, maximum, precedence, and conditionality.
The minimum, optimum, and maximum components are <length>s.
The precedence component is either "force" or an <integer>.
The conditionality component is either "discard" or "retain".
If "minimum" is greater than optimum, it will be treated as if it had
been set to "optimum".
If "maximum" is less than optimum, it will be treated as if it had
been set to "optimum".
-
<keep>
-
A compound datatype, with components:
within-line, within-column, and within-page. The value of each
component is either "auto", "always", or an <integer>.
-
<angle>
-
A representation of an angle consisting of
an optional '+' or '-' character immediately followed by
a <number> immediately followed by an angle unit identifier.
Angle unit identifiers are:
'deg' (for degrees),
'grad' (for grads), and
'rad' (for radians).
The specified values are normalized to the range 0deg to 360deg.
A property may define additional constraints on the value.
-
<percentage>
-
A signed real percentage which consists of an optional '+' or '-'
character followed by a sequence of digits followed by an optional '.'
character and sequence of digits followed by '%'.
A property may define additional constraints on the value.
-
<character>
-
A single Unicode character.
-
<string>
-
A sequence of characters.
-
<name>
-
A string of characters representing a name.
It must conform to the definition of an
NCName in
[XMLNAMES]
.
-
<family-name>
-
A string of characters identifying a font.
-
<color>
-
Either a string of characters representing a keyword or a color
function defined in
[expr-color-functions]
.
The list of keyword color names is:
aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive,
purple, red, silver, teal, white, and yellow.
-
<country>
-
A string of characters conforming to an ISO 3166 country code.
-
<language>
-
A string of characters conforming to the
ISO 639 3-letter code.
-
<script>
-
A string of characters conforming to an
ISO 15924 script code.
-
<id>
-
A string of characters conforming
to the definition of an
NCName in
[XMLNAMES]
and is unique within the stylesheet.
-
<idref>
-
A string of characters conforming
to the definition of an
NCName in
[XMLNAMES]
and
that matches an ID property value used within the stylesheet.
-
<uri-specification>
-
A sequence of characters that is
"url(", followed by optional
white space, followed by an optional single quote
(') or double quote (") character, followed by
a URI reference as defined in
[RFC2396]
,
followed by an optional single quote (') or double quote (")
character, followed by optional white space, followed by
")". The two quote characters must be the same and must both be
present or absent. If the URI reference contains a single quote, the
two quote characters must be present and be double quotes.
-
<time>
-
A <number> immediately followed by a time unit identifier.
Time unit identifiers are: 'ms' (for milliseconds) and 's' (for seconds).
-
<frequency>
-
A <number> immediately followed by a frequency unit identifier.
Frequency unit identifiers are: 'Hz' (for Hertz) and 'kHz' (for kilo Hertz).
|