@font-face

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

Die @font-face CSS At-Regel spezifiziert eine benutzerdefinierte Schriftart, mit der Text angezeigt wird; die Schriftart kann entweder von einem entfernten Server oder von einer lokal auf dem Computer des Nutzers installierten Schriftart geladen werden.

Syntax

css
@font-face {
  font-family: "Trickster";
  src:
    local("Trickster"),
    url("trickster-COLRv1.otf") format("opentype") tech(color-COLRv1),
    url("trickster-outline.otf") format("opentype"),
    url("trickster-outline.woff") format("woff");
}

Deskriptoren

ascent-override

Definiert das Aszendenz-Metrik für die Schriftart.

descent-override

Definiert das Deszendenz-Metrik für die Schriftart.

font-display

Bestimmt, wie eine Schriftart dargestellt wird, basierend darauf, ob und wann sie heruntergeladen und einsatzbereit ist.

font-family

Gibt einen Namen an, der als Schriftartwert für Schriftattribute verwendet wird.

font-stretch

Ein font-stretch Wert. Akzeptiert zwei Werte, um einen Bereich anzugeben, der von einer Schriftart unterstützt wird, zum Beispiel font-stretch: 50% 200%;

font-style

Ein font-style Wert. Akzeptiert zwei Werte, um einen Bereich anzugeben, der von einer Schriftart unterstützt wird, zum Beispiel font-style: oblique 20deg 50deg;

font-weight

Ein font-weight Wert. Akzeptiert zwei Werte, um einen Bereich anzugeben, der von einer Schriftart unterstützt wird, zum Beispiel font-weight: 100 400;

Hinweis: Der font-variant Deskriptor wurde 2018 aus der Spezifikation entfernt. Der font-variant Wert ist unterstützt, aber es gibt kein äquivalentes Deskriptor.

font-feature-settings

Ermöglicht die Kontrolle über erweiterte typografische Funktionen in OpenType-Schriftarten.

font-variation-settings

Ermöglicht eine niedrige Ebene der Kontrolle über OpenType- oder TrueType-Schriftvariationen, indem die vier Buchstabenachsen der Merkmale, die variiert werden sollen, zusammen mit ihren Variationswerten angegeben werden.

line-gap-override

Definiert den Zeilenabstand-Metrik für die Schriftart.

size-adjust

Definiert einen Multiplikator für Schriftkonturen und Metriken, die mit dieser Schrift verbunden sind. Dies erleichtert die Harmonisierung der Designs verschiedener Schriftarten bei gleicher Schriftgröße.

src

Gibt Verweise auf Schriftressourcen einschließlich Hinweise über das Schriftformat und die Technologie an. Es ist erforderlich, dass die @font-face-Regel gültig ist.

unicode-range

Der Bereich der Unicode-Codepoints, die aus der Schrift verwendet werden sollen.

Beschreibung

Es ist üblich, sowohl url() als auch local() zusammen zu verwenden, sodass die auf dem Gerät des Benutzers installierte Schriftart benutzt wird, falls verfügbar, wobei andernfalls eine Kopie der Schriftart heruntergeladen wird.

Wenn die local() Funktion bereitgestellt wird, um eine Schriftart zu spezifizieren, nach der auf dem Gerät des Nutzers gesucht werden soll, und wenn der User-Agent eine Übereinstimmung findet, wird diese lokale Schriftart verwendet. Andernfalls wird die Schriftressource, die mit der url() Funktion angegeben ist, heruntergeladen und verwendet.

Browser versuchen, Ressourcen in der Reihenfolge ihrer Deklarationsliste zu laden, daher sollte local() in der Regel vor url() geschrieben werden. Beide Funktionen sind optional, sodass ein Regelblock, der nur ein oder mehrere local() ohne url() enthält, möglich ist. Wenn spezifischere Schriftarten mit format() oder tech() Werten gewünscht sind, sollten diese vor Versionen aufgelistet werden, die diese Werte nicht besitzen, da ansonsten die weniger spezifische Variante zuerst ausprobiert und verwendet würde.

Indem Autoren ihre eigenen Schriftarten bereitstellen können, ermöglicht @font-face das Design von Inhalten, ohne auf die sogenannten "web-sicheren" Schriftarten (d.h. Schriftarten, die so verbreitet sind, dass sie als universell verfügbar gelten) beschränkt zu sein. Die Möglichkeit, den Namen einer lokal installierten Schriftart anzugeben, nach der gesucht und verwendet werden soll, ermöglicht es, die Schrift jenseits der Grundlagen anzupassen, ohne auf eine Internetverbindung angewiesen zu sein.

Hinweis: Fallback-Strategien zum Laden von Schriftarten in älteren Browsern sind auf der src Deskriptorseite beschrieben.

Die @font-face At-Regel kann nicht nur auf der obersten Ebene eines CSS verwendet werden, sondern auch innerhalb jeder CSS bedingten Gruppen-At-Regel.

MIME-Typen für Schriftarten

Format MIME-Typ
TrueType font/ttf
OpenType font/otf
Web Open Font Format font/woff
Web Open Font Format 2 font/woff2

Anmerkungen

  • Web-Schriften unterliegen denselben Domain-Beschränkungen (Schriftdateien müssen sich auf derselben Domain wie die Seite befinden, die sie verwendet), es sei denn, HTTP-Zugriffskontrollen werden verwendet, um diese Beschränkung zu lockern.

  • @font-face kann nicht innerhalb eines CSS-Selektors deklariert werden. Zum Beispiel funktioniert Folgendes nicht:

    css
    .className {
      @font-face {
        font-family: "MyHelvetica";
        src: local("Helvetica Neue Bold"), local("HelveticaNeue-Bold"),
          url("MgOpenModernaBold.ttf");
        font-weight: bold;
      }
    }
    

Formale Syntax

@font-face = 
@font-face { <declaration-list> }

Beispiele

Spezifizieren einer herunterladbaren Schriftart

Dieses Beispiel spezifiziert eine herunterladbare Schriftart zur Verwendung und wendet sie auf den gesamten Dokumentenkörper an:

html
<!doctype html>
<html lang="en-US">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>Web Font Sample</title>
    <style media="screen, print">
      @font-face {
        font-family: "Bitstream Vera Serif Bold";
        src: url("https://mdn.github.io/css-examples/web-fonts/VeraSeBd.ttf");
      }

      body {
        font-family: "Bitstream Vera Serif Bold", serif;
      }
    </style>
  </head>
  <body>
    This is Bitstream Vera Serif Bold.
  </body>
</html>

Die Ausgabe dieses Beispielcodes sieht folgendermaßen aus:

Spezifizieren von lokalen Schriftalternativen

In diesem Beispiel wird die lokale Kopie des Nutzers von "Helvetica Neue Bold" verwendet; wenn der Nutzer diese Schriftart nicht installiert hat (sowohl der vollständige Schriftname als auch der Postscript-Name werden versucht), wird stattdessen die herunterladbare Schriftart "MgOpenModernaBold.ttf" verwendet:

css
@font-face {
  font-family: "MyHelvetica";
  src: local("Helvetica Neue Bold"), local("HelveticaNeue-Bold"),
    url("MgOpenModernaBold.ttf");
  font-weight: bold;
}

Spezifikationen

Specification
CSS Fonts Module Level 4
# font-face-rule

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch