Definition and Usage
The font CSS property is either a shorthand property for setting font-style, font-variant, font-weight, font-size, line-height and font-family, or a way to set the element’s font to a system font, using specific keywords.
As with any shorthand CSS properties, the values which are not set in it are set to their individual initial values, eventually overriding values previously set using non-shorthand properties.
Note: There are few caveats when using the CSS font shorthand. If these conditions are not met, the property is invalid and is entirely ignored.
- Initialthe concatenation of the initial values of its longhand properties:
- font-style: is itself a shorthand, its initial value is the concatenation of its own longhand properties
- font-variant: is itself a shorthand, its initial value is the concatenation of its own longhand properties
- font-weight: is itself a shorthand, its initial value is the concatenation of its own longhand properties
- font-stretch: is itself a shorthand, its initial value is the concatenation of its own longhand properties
- font-size: is itself a shorthand, its initial value is the concatenation of its own longhand properties
- line-height: is itself a shorthand, its initial value is the concatenation of its own longhand properties
- font-family: is itself a shorthand, its initial value is the concatenation of its own longhand properties
- Applies toall elements
- Inheritedyes
- PercentagesThe values of its longhand properties the percentage value belongs to:
- font-size: refer to the parent element’s font size
- line-height: refer to the font size of the element itself
- Mediavisual
- Computed Valueas each of the properties of the shorthand:
- font-style: as specified
- font-variant: as specified
- font-weight: the keyword or the numerical value as specified, with bolder and lighter transformed to the real value
- font-stretch: as specified
- font-size: as specified, but with relative lengths converted into absolute lengths
- line-height: for percentage and length values, the absolute length, otherwise as specified
- font-family: as specified
- Animatableas each of the properties of the shorthand:
- Canonical orderorder of appearance in the formal grammar of the values
Syntax
Formal syntax: [ [ <‘font-style’> || <font-variant-css21> || <‘font-weight’> || <‘font-stretch’> ]? <‘font-size’> [ / <‘line-height’> ]? <‘font-family’> ] | caption | icon | menu | message-box | small-caption | status-bar
Values
- <‘font-style’>
- See the font-style CSS property.
- <‘font-variant’>
- See the font-variant CSS property.
- <‘font-weight’>
- See the font-weight CSS property.
- <‘font-size’>
- See the font-size CSS property.
- <‘line-height’>
- See the line-height CSS property.
- <‘font-family’>
- See the font-family CSS property.
- caption icon menu message-box small-caption status-bar
- Instead of specifying individual longhand properties, a keyword can be used to represent a specific system font:
| caption | The font used for captioned controls (e.g., buttons, drop-downs, etc.). |
| icon | The font used to label icons. |
| menu | The font used in menus (e.g., dropdown menus and menu lists). |
| message-box | The font used in dialog boxes. |
| small-caption | The font used for labeling small controls. |
| status-bar | The font used in window status bars. |
Browsers implementing these often implement several more, prefixed, values; Gecko implements -moz-window, -moz-document, -moz-desktop, -moz-info, -moz-dialog, -moz-button, -moz-pull-down-menu, -moz-list and -moz-field.
Examples
2 | p { font: 12px/14px sans-serif } |
3 | p { font: 80% sans-serif } |
3 | p { font: bold italic large serif } |
Compatibility
Desktop browsers
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
| Shorthand | 1.0 | 1.0 (1.0) | 3.0-4.0 | 3.5 | 1.0 (85) |
| System fonts | 1.0 | 1.0 (1.0) | 4.0-5.5 | 6.0 | 1.0 (85) |
Mobile browsers
| Feature | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
| Basic support | NA | NA | NA | NA | NA |