- From: John Daggett <jdaggett@mozilla.com>
- Date: Thu, 10 May 2012 03:21:54 -0700 (PDT)
- To: www-style list <www-style@w3.org>
Current definition of 'font-family' within CSS3 Fonts spec: font-family Value: [[ <family-name> | <generic-family> ] [, <family-name> | <generic-family>]* ] | inherit Using the hash-mark convention described in CSS3 Values and Units, along with the changes related to the use of identifiers [1],[2] to define unquoted family names, this can be stated more simply. This definition should resolve ambiguities related to the use of reserved keywords within unquoted font family names. Proposed new definition of 'font-family' in CSS3 Fonts: font-family: <font-family-list> | inherit; where <font-family-list> == [ <string> | <user-ident>+ ]# Here <user-ident>+ represents either a generic font family or an unquoted font family name. The following generic family keywords are defined: ‘serif’, ‘sans-serif’, ‘cursive’, ‘fantasy’, and ‘monospace’. These keywords can be used as a general fallback mechanism when an author's desired font choices are not available. As keywords, they must not be quoted. Authors are encouraged to append a generic font family as a last alternative for improved robustness. Font family names that happen to be the same as a generic family name must be quoted to prevent confusion with the keywords with the same names. As with other user-defined identifiers, reserved keywords such as 'inherit', 'initial' or 'default' are not permitted within unquoted font family names. The use of these within unquoted family names must be treated as invalid, so font family names containing these keywords must be quoted. This also means most punctuation characters and digits at the start of each token must be escaped in unquoted font family names. For unquoted font family names, the computed value is the name converted to a string by joining all the identifiers in the sequence by single spaces. For example, the following declarations are invalid: font-family: Red/Black, sans-serif; font-family: "Lucida" Grande, sans-serif; font-family: Ahem!, sans-serif; font-family: test@foo, sans-serif; font-family: #POUND, sans-serif; font-family: Hawaii 5-0, sans-serif; To avoid mistakes in escaping, it is recommended to quote font family names that contain digits or punctuation characters other than hyphens: body { font-family: "21st Century Schoolbook", serif } <BODY STYLE="font-family: 'M+ 1m', fantasy"> Font family names are matched case insensitively. User agents must match only family names (e.g. "Helvetica")and not the names of individual faces (e.g. "Helvetica Bold" or "Helvetica-Bold"). Some font formats such as OpenType allow fonts to carry multiple localizations of the family name (e.g. "ヒラギノ明朝 ProN"). User agents must recognize and correctly match all of these names independent of the underlying platform localization, system API used or document encoding. Within the value syntax for the 'font' shorthand, in place of '<font-family>' the '<font-family-list>' defined above would be used. Note: I am *not* proposing this change for CSS 2.1. Regards, John Daggett [1] http://lists.w3.org/Archives/Public/www-style/2012May/0311.html [2] http://lists.w3.org/Archives/Public/www-style/2012May/0364.html
Received on Thursday, 10 May 2012 10:22:24 UTC