concatenate(value, ..., value) may be used to specify a dynamically evaluated property value anywhere a static property value is allowed.
A dynamic property value is evaluated just before building the view corresponding to the subject of the selector:
The value arguments are converted to strings and concatenated together. Note that pseudo-functions such as attr()
or xpath()
are evaluated in order to obtain their string values.
The result of the evaluation is a string which is parsed as a property value.
Example 1 (XHTML), simple table formatting could be implemented using this feature:
td, th { display: table-cell; text-align: concatenate(attr(align)); vertical-align: concatenate(attr(valign)); row-span: concatenate(attr(rowspan)); column-span: concatenate(attr(colspan)); border: 1 inset gray; padding: 2; }
Example 2 (custom DTD) image name is the concatenation of a basename obtained from attribute name
and an extension obtained from attribute format
(see above to have a description of pseudo-function image()
):
image { content: concatenate("image('", attr(name), ".", attr(format), "',-400,-200)"); }