Re: CSS1 Clarification

Bert Bos (
Thu, 1 Feb 1996 12:59:47 +0100

(Jonathan, I've Cc'ed this to www-style)

Jonathan Stark writes (in a private message to me, BB):
> If 2 desciptions have the exact same specificity, such as
> LI {font: 14pt/16pt helvetica bold}
> /* a=0 b=0 c=1 -> specificity = 1 */
> LI { font-size: 12pt}
> /* a=0 b=0 c=1 -> specificity = 1 */
> The specification says
> 5.Resolve conflicts between properties: more specific properties
> (e.g. 'font-size') will override compound properties (e.g. 'font').
> Does that mean that the proper thing to do is _only_ set the
> font-size to 12pt, or would the proper thing to do be to
> set the font size to the equivelent of font: 12pt/16pt helvetica bold ?

Good point. The intention is that `font-size' only overrides the font
size. The rest (16pt, helvetica, bold, normal) is not affected.

But we're actually thinking of changing (simplifying?) it:

A situation like this is probably rare and it is possible to interpret
`font' slightly differently, so that cascading rule #5 is not needed
anymore. Rule #6 (`later rule overrides earlier one') would be used

How about this: view "font:a/b c d e" as a *macro* (rather than a
shorthand) for

font-size: a
line-height: b
font-family: c
font-weight: d
font-style: e

The cascading rules would then be applied *after* the `macro' has been
expanded. (The word `expanded' is just a way of explaining the
meaning, it doesn't say that an implementation should actually do
macro expansion.)

What do people think?


  Bert Bos                                ( W 3 C )                                  INRIA project RODEO/W3C   2004 Rt des Lucioles / BP 93
  +33 93 65 77 71                 06902 Sophia Antipolis Cedex, France