Font family (HTML) explained

The font family selection in (X)HTML, CSS, and derived systems specifies a list of prioritized fonts and generic family names; in conjunction with correlating font properties, this list determines the particular font face used to render characters. The family selection is available in two forms: in the deprecated (X)HTML element with its attribute, and in the CSS property.

The CSS term font family is matched with the typographical term typeface, which is a grouping of fonts defined by shared design styles. A font is a particular set of glyphs (character shapes), differentiated from other fonts in the same family by additional properties such as stroke weight, slant, relative width, etc. The CSS term font face is matched with "font"; it is decided by a combination of the font family and the additional properties.

In both HTML and CSS, the list is separated by commas. To avoid unexpected results, the last font family on the font list should be one of the generic families which are by default always available. In the absence of a font being found, the web browser will use its default font, which may be a user-defined one. Depending on the web browser, a user can in fact override the font defined by the code writer. This may be for personal taste reasons, but may also be because of some physical limitation of the user, such as the need for a larger font size or the avoidance of certain colors.

In addition to local fonts, modern web browsers support linking custom font files directly by using the @font-face declaration. Once included, such fonts can be listed in the font-family property, alongside all local and fallback fonts.

Examples

The following example defines the same font face (Times or a default serif, 14 points, italics) in three ways:

.text

Sample text formatted with CSS in a separate stylesheet.

Sample text formatted with inline CSS.

Sample text formatted with the deprecated FONT tag.>

It is a best practice to put a space after the comma, and to put any name containing spaces between quotation marks.

Font name as family name

Although CSS tries to define a font family as the same as a typeface, the entry and its non-standard HTML predecessor has also historically been used to identify the entire font face. This usage is due to font files not describing themselves as part of a family, partially motivated by the fact that few editors at the time supported the selection among more than four font styles (bold/regular and italics/regular).

As a result, it used to be common to see declarations such as in place of the pedantically correct . Neither CSS2 nor CSS3 endorse such a use (they are not found in examples), but most browsers accept them as valid "names" nevertheless.

Generic fonts

The font-family can use a specific named font (like Heisei Mincho W9), but the result depends on the fonts installed on the user machine. The actual appearance will depend on the browser and the fonts installed on the system.[1] A default installation of Firefox on Microsoft Windows, for instance, will display both serif as Times New Roman, and both sans-serif as Arial.

Usually only a small subset of them, chiefly the Serif, Sans-serif, Monospace and Cursive[2] are easily configurable by user in web browsers.

Many systems also perform special-cased font substitution to replace missing "well-known" families with metric-compatible alternatives. For example, Windows substitutes Helvetica with Arial, and Times with Times New Roman.[3] These families are not generic in the CSS sense, and are generally not handled at the browser level.

See also

Notes

  1. Web site: Fonts . W3.org . 2013-09-21.
  2. very few web browsers, including Konqueror, support changing Cursive
  3. Web site: Font Technology - Globalization . docs.microsoft.com . 31 January 2022 . en-us.