A conformant implementation of the CSS module is not required to
implement the CSS2Properties interface. If an implementation
does implement this interface, the expectation is that language-specific
methods can be used to cast from an instance of the
CSSStyleDeclaration interface to the
If an implementation does implement this interface, it is expected to
understand the specific syntax of the shorthand properties, and apply
their semantics; when the margin property is set, for
example, the marginTop, marginRight,
marginBottom and marginLeft properties are
actually being set by the underlying implementation.
When dealing with CSS "shorthand" properties, the shorthand properties
should be decomposed into their component longhand properties as
appropriate, and when querying for their value, the form returned should
be the shortest form exactly equivalent to the declarations made in the
ruleset. However, if there is no shorthand declaration that could be
added to the ruleset without changing in any way the rules already
declared in the ruleset (i.e., by adding longhand rules that were
previously not declared in the ruleset), then the empty string should be
returned for the shorthand property.
For example, querying for the font property should not
return "normal normal normal 14pt/normal Arial, sans-serif", when "14pt
Arial, sans-serif" suffices. (The normals are initial values, and are
implied by use of the longhand property.)
If the values for all the longhand properties that compose a particular
string are the initial values, then a string consisting of all the
initial values should be returned (e.g. a border-width value
of "medium" should be returned as such, not as "").
For some shorthand properties that take missing values from other
sides, such as the margin, padding, and
border-[width|style|color] properties, the minimum number of
sides possible should be used; i.e., "0px 10px" will be returned instead
of "0px 10px 0px 10px".
If the value of a shorthand property can not be decomposed into its
component longhand properties, as is the case for the font
property with a value of "menu", querying for the values of the component
longhand properties should return the empty string.
See also the Document Object Model (DOM) Level 2 Style Specification.