@font-face CSS at-rule
Baseline
Weitgehend verfügbar
*
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Die @font-face CSS Regel spezifiziert eine benutzerdefinierte Schriftart, mit der Text angezeigt wird; die Schriftart kann entweder von einem entfernten Server geladen werden oder von einer lokal installierten Schriftart auf dem Computer des Benutzers stammen.
Syntax
@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.woff2") format("woff2");
}
Deskriptoren
ascent-override-
Definiert die Aufstiegsmetrik der Schriftart.
descent-override-
Definiert die Abstiegsmetrik der Schriftart.
font-display-
Bestimmt, wie eine Schriftart basierend darauf angezeigt wird, ob und wann sie heruntergeladen und einsatzbereit ist.
font-family-
Gibt einen Namen an, der als Schriftartwert für Schriftarteigenschaften verwendet wird. Ein
font-familyName ist erforderlich, damit die@font-faceRegel gültig ist. font-stretch-
Ein
font-stretchWert. Akzeptiert zwei Werte, um einen Bereich anzugeben, der von einer Schriftart unterstützt wird, zum Beispielfont-stretch: 50% 200%; font-style-
Ein
font-styleWert. Akzeptiert zwei Werte, um einen Bereich anzugeben, der von einer Schriftart unterstützt wird, zum Beispielfont-style: oblique 20deg 50deg; font-weight-
Ein
font-weightWert. Akzeptiert zwei Werte, um einen Bereich anzugeben, der von einer Schriftart unterstützt wird, zum Beispielfont-weight: 100 400; font-feature-settings-
Ermöglicht die Steuerung über erweiterte typografische Funktionen in OpenType-Schriften.
font-variation-settings-
Erlaubt die Feinsteuerung über OpenType- oder TrueType-Schriftvarianten, indem die vier Buchstaben langen Achsennamen der zu variierenden Merkmale, zusammen mit ihren Variationswerten, angegeben werden.
font-width-
Erlaubt Autoren, eine normale, kondensierte oder erweiterte Variante für die angegebene Schriftart zu spezifizieren.
line-gap-override-
Definiert die Linienzellenlücke der Schriftart.
size-adjust-
Definiert einen Multiplikator für Glyphenumrisse und dazugehörige Metriken dieser Schriftart. Dies erleichtert es, das Design verschiedener Schriftarten bei gleicher Schriftgröße zu harmonisieren.
src-
Gibt Verweise auf Schriftartenressourcen an, einschließlich Hinweisen zum Schriftformat und zur Technologie. Ein
srcist erforderlich, damit die@font-faceRegel gültig ist. unicode-range-
Der Bereich von Unicode-Codepunkten, die aus der Schriftart verwendet werden sollen.
Beschreibung
Es ist üblich, sowohl url() als auch local() zusammen zu verwenden, sodass die installierte Kopie der Schriftart des Benutzers verwendet wird, wenn verfügbar, und andernfalls eine Kopie der Schriftart heruntergeladen wird, wenn sie nicht auf dem Gerät des Benutzers gefunden wird.
Wenn die local() Funktion bereitgestellt wird, um einen Schriftartnamen anzugeben, der auf dem Gerät des Benutzers gesucht werden soll, und wenn der User-Agent eine Übereinstimmung findet, wird diese lokale Schriftart verwendet. Andernfalls wird die mit der url() Funktion angegebene Schriftartressource heruntergeladen und verwendet.
Browser versuchen, Ressourcen in ihrer Deklarationsreihenfolge zu laden, daher sollte local() normalerweise 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 Schriften mit format() oder tech() Werten gewünscht sind, sollten diese vor Versionen aufgelistet werden, die diese Werte nicht haben, da sonst die weniger spezifische Variante zuerst ausprobiert und verwendet würde.
Für die Bereitstellung im Web ist es im Allgemeinen am besten, Schriften im WOFF2-Format bereitzustellen, da es Schriften effizienter komprimiert als ältere Formate wie WOFF oder OpenType, wodurch die Dateigröße reduziert und die Ladezeiten verbessert werden. WOFF2 wird auch in modernen Browsern gut unterstützt, was es zu einer sicheren Standardwahl für die meisten Websites macht.
Indem es Autoren ermöglicht, ihre eigenen Schriften bereitzustellen, ermöglicht @font-face das Design von Inhalten, ohne auf die sogenannten "web-sicheren" Schriften (das heißt, die Schriften, die so verbreitet sind, dass sie als universell verfügbar gelten) beschränkt zu sein. Die Möglichkeit, den Namen einer lokal installierten Schrift anzugeben, nach der gesucht und die verwendet werden soll, ermöglicht es, die Schrift über die Grundlagen hinaus anzupassen, ohne auf eine Internetverbindung angewiesen zu sein.
Hinweis:
Rückfallstrategien für das Laden von Schriften in älteren Browsern werden auf der src Deskriptorseite beschrieben.
Die @font-face Regel kann nicht nur auf oberster Ebene einer CSS verwendet werden, sondern auch innerhalb jeder CSS Bedingungsgruppenregel.
Font-MIME-Typen
| Format | MIME-Typ |
|---|---|
| TrueType | font/ttf |
| OpenType | font/otf |
| Web Open Font Format | font/woff |
| Web Open Font Format 2 | font/woff2 |
Hinweise
-
Webschriften unterliegen denselben Domainbeschränkungen (Schriftdateien müssen sich auf derselben Domain befinden wie die Seite, die sie verwendet), es sei denn, es werden HTTP-Zugriffskontrollen verwendet, um diese Beschränkung zu lockern.
-
@font-facekann nicht innerhalb eines CSS-Selectors deklariert werden. Zum Beispiel wird Folgendes nicht funktionieren:css.className { @font-face { font-family: "MyHelvetica"; src: local("Helvetica Neue Bold"), local("HelveticaNeue-Bold"), url("MgOpenModernaBold.woff2"); font-weight: bold; } }
Formale Syntax
@font-face =
@font-face { <declaration-list> }
Beispiele
>Eine herunterladbare Schriftart spezifizieren
Dieses Beispiel spezifiziert eine herunterladbare Schriftart, die auf den gesamten Körper des Dokuments angewendet wird:
<body>
This is Bitstream Vera Serif Bold.
</body>
@font-face {
font-family: "Bitstream Vera Serif Bold";
src: url("https://mdn.github.io/shared-assets/fonts/FiraSans-Regular.woff2");
}
body {
font-family: "Bitstream Vera Serif Bold", serif;
}
Lokale Schriftalternativen spezifizieren
In diesem Beispiel wird die lokale Kopie der Schriftart "Helvetica Neue Bold" des Benutzers verwendet; wenn der Benutzer diese Schriftart nicht installiert hat (es werden sowohl der vollständige Schriftname als auch der Postscript-Name versucht), wird stattdessen die herunterladbare Schriftart "MgOpenModernaBold.woff2" verwendet:
@font-face {
font-family: "MyHelvetica";
src:
local("Helvetica Neue Bold"), local("HelveticaNeue-Bold"),
url("MgOpenModernaBold.woff2");
font-weight: bold;
}
Spezifikationen
| Spezifikation |
|---|
| CSS Fonts Module Level 4> # font-face-rule> |