font-weight

Baseline Widely available

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

Der font-weight CSS @font-face-Deskriptor ermöglicht es Autoren, ein einzelnes Schriftgewicht oder einen Bereich von Schriftgewichten für die im @font-face At-Regel spezifizierte Schriftart anzugeben. Dies wird dann vom Browser verwendet, um die passende Schriftart auszuwählen, wenn eine CSS-Regel ein gewünschtes Schriftgewicht festlegt.

Typischerweise möchte ein Entwickler Schriftarten aus einer einzigen Schriftfamilie in verschiedenen Gewichtungen verwenden. Bei traditionellen oder statischen Schriftarten enthält eine einzelne Schriftdatei Zeichen aus einer Schriftfamilie in einem bestimmten Gewicht und Stil, zum Beispiel "Helvetica fett kursiv". Um die Anzeige von leichten, regulären, fetten oder extra-fetten Schriften zu ermöglichen, wenn die font-weight-Eigenschaft ein bestimmtes Gewicht anfordert, können Sie mehrere @font-face-Regeln für dieselbe Familie definieren (alle mit demselben font-family-Deskriptorwert), eine für jedes Gewicht oder Gewichtsbereich.

Um die Schriftart für einen Bereich von Schriftgewichten zu deklarieren, geben Sie ein Leerzeichen-getrenntes Paar von Schriftgewichtswerten als Wert für den font-weight-Deskriptor an. Wenn CSS-Regeln ein Schriftgewicht durch Setzen der font-weight-Eigenschaft oder der font-Kurzform-Eigenschaft festlegen, wird die passende Schriftart verwendet.

Beispielsweise, wenn der Deskriptor font-weight: 400 600; lautet, wird bei der Eigenschaft font-weight: 450 oder font-weight: 550 diese Schriftart für diese Schriftfamilie verwendet. Ob die Schriftart eine statische oder eine variable Schriftart ist, die zum Bereich passende Schriftart wird verwendet. In diesem Fall erscheint, wenn die Schriftart eine statische ist, 450 und 550 gleich. Wenn die Schriftart eine variable ist, wird Letzteres fetter sein.

Der Deskriptor ist für alle Schriftarten gleich, aber der Bereich, den Sie für eine variable Schriftart festlegen, wird in der Regel größer sein, möglicherweise sogar 1 1000, um dieselbe Schriftart für alle Schriftgewichtseigenschaftswerte zu verwenden.

Syntax

css
/* Single values */
font-weight: normal;
font-weight: bold;
font-weight: 400;

/* Defining a range */
font-weight: normal bold;
font-weight: 300 500;

Werte

Der font-weight-Deskriptor nimmt eine der folgenden Formen an:

  • Das Schlüsselwort auto.
  • Ein einzelner <font-weight-absolute>-Wert.
  • Ein Paar von <font-weight-absolute>-Werten, durch ein Leerzeichen getrennt.

Jeder <font-weight-absolute> kann einer der folgenden Werte sein:

normal

Normales Schriftgewicht. Gleich 400.

bold

Fettes Schriftgewicht. Gleich 700.

<number>

Ein <number>-Wert zwischen 1 und 1000, inklusive. Höhere Zahlen repräsentieren Gewichtungen, die fetter sind als (oder genauso fett wie) niedrigere Zahlen. Bestimmte häufig verwendete Werte entsprechen allgemeinen Gewichtsnamen, wie im Abschnitt Allgemeine Gewichtsnamen-Zuordnung unten beschrieben.

Allgemeine Gewichtsnamen-Zuordnung

Die numerischen Werte 100 bis 900 entsprechen grob den folgenden allgemeinen Gewichtsnamen:

Wert Allgemeiner Gewichtname
100 Dünn (Haarlinie)
200 Extra Leicht (Ultra Leicht)
300 Leicht
400 Normal
500 Mittel
600 Halbfett (Demi Fett)
700 Fett
800 Extra Fett (Ultra Fett)
900 Schwarz (Schwer)

Variable Schriftarten

Die meisten Schriftarten haben ein bestimmtes Gewicht, das einem der Zahlen in der Allgemeinen Gewichtsnamen-Zuordnung entspricht. Einige Schriftarten, sogenannte variable Schriftarten, können jedoch einen Bereich von Gewichten mit mehr oder weniger feiner Granularität unterstützen, und dies kann dem Designer einen viel genaueren Grad der Kontrolle über das gewählte Gewicht geben.

Für TrueType- oder OpenType-Variable-Schriftarten wird die "wght"-Variation verwendet, um variierende Gewichte zu implementieren.

Barrierefreiheit

Menschen mit eingeschränktem Sehvermögen können Schwierigkeiten haben, Text zu lesen, der mit einem font-weight-Wert von 100 (Dünn/Haarlinie) oder 200 (Extra Leicht) gesetzt wird, insbesondere wenn die Schriftart ein niedriges Kontrastfarbverhältnis hat.

Formale Definition

Zugehörige @-Regel@font-face
Anfangswertnormal
Berechneter Wertwie angegeben

Formale Syntax

font-weight = 
auto |
<font-weight-absolute>{1,2}

<font-weight-absolute> =
normal |
bold |
<number [1,1000]>

Beispiele

Auswahl von normalen und fetten Schriftarten

In diesem Beispiel beinhalten wir zwei Schriftarten, eine normale Gewichtung und eine fette Gewichtung, aus der "Fira Sans" Schriftfamilie unter Verwendung von zwei @font-face At-Regeln. Wir setzen font-weight-Deskriptoren, um der Gewichtung der Schriftarten zu entsprechen.

Nach diesem Schritt können CSS-Regeln die normale oder die fette Schriftart für die "Fira Sans"-Familie einfach durch das Setzen der font-weight-Eigenschaft auswählen. Beachten Sie, dass das <strong> HTML-Element ebenfalls die fette Schriftart auswählt, da <strong>-Elemente standardmäßig einen CSS font-weight-Eigenschaftswert von bold haben.

HTML

html
<p class="one">Fira Sans, `normal` weight paragraph</p>
<p class="two">Fira Sans, `bold` weight paragraph</p>
<p><strong>Fira Sans, &lt;strong&gt; element (`bold`)</strong></p>

CSS

css
@font-face {
  font-family: "Fira Sans";
  font-weight: normal;
  src: url("https://mdn.github.io/shared-assets/fonts/FiraSans-Regular.woff2");
}

@font-face {
  font-family: "Fira Sans";
  font-weight: bold;
  src: url("https://mdn.github.io/shared-assets/fonts/FiraSans-Bold.woff2");
}

body {
  font-family: "Fira Sans", serif;
  font-size: 2rem;
}

p.one {
  font-weight: normal;
}

p.two {
  font-weight: bold;
}

Ergebnis

Festlegen von Schriftgewichtbereichen

Dieses Beispiel zeigt, wie Autoren mehrere Schriftarten für mehrere Schriftgewichte (und Schriftstile) einschließen können, indem sie mehrere @font-face-Deklarationen mit demselben font-family-Wert einfügen. Durch das Setzen der font-weight-Deskriptoren mit Bereichen von 1 bis 1000 können Sie im Rest Ihres Stylesheets ein font-weight (oder font-style) deklarieren und wissen, dass die passende Schriftart verwendet wird.

HTML

html
<p class="one">This has a font weight of 100</p>
<p class="three">This has a font weight of 300</p>
<p class="four">This has a font weight of 400</p>
<p class="five">This has a font weight of 500</p>
<p class="seven">This has a font weight of 700</p>
<p class="nine">This has a font weight of 900</p>

CSS

Wir fügen vier @font-face-Deklarationen für vier verschiedene Schriftarten aus der FireSans-Schriftfamilie ein, wie im vorherigen Beispiel zu sehen. Jede Deklaration ist auf einen anderen Bereich von Schriftgewichtswerten festgelegt, verwendet jedoch alle denselben Schriftartennamen.

Die erste Deklaration verwendet FiraSans-Regular und ihr zugehöriger font-weight-Bereich umfasst den gesamten möglichen Bereich von Schriftgewichtwerten.

Die anderen drei Deklarationen verwenden die leichte, fette und extra-fette Version der Schriftart und ihre zugehörigen font-weight-Bereiche definieren Teilbereiche des Bereichs wie folgt:

  • die leichte Schrift ist dem Bereich 1-300 zugeordnet
  • die fette Schrift ist dem Bereich 500-700 zugeordnet
  • die extra-fette Schrift ist dem Bereich 700-1000 zugeordnet

Die CSS-Kaskade stellt sicher, dass die drei letztgenannten Deklarationen Teile des Bereichs, der in der FiraSans-Regular-Deklaration festgelegt wurde, überschreiben.

css
@font-face {
  font-family: "Fira Sans";
  font-weight: 1 1000;
  src: url("https://mdn.github.io/shared-assets/fonts/FiraSans-Regular.woff2");
}

@font-face {
  font-family: "Fira Sans";
  font-weight: 1 300;
  src: url("https://mdn.github.io/shared-assets/fonts/FiraSans-Light.woff2");
}

@font-face {
  font-family: "Fira Sans";
  font-weight: 500 700;
  src: url("https://mdn.github.io/shared-assets/fonts/FiraSans-Bold.woff2");
}

@font-face {
  font-family: "Fira Sans";
  font-weight: 700 1000;
  src: url("https://mdn.github.io/shared-assets/fonts/FiraSans-ExtraBold.woff2");
}

body {
  font-family: "Fira Sans", serif;
  font-size: 2rem;
}

p.one {
  font-weight: 100;
}

p.three {
  font-weight: 300;
}

p.four {
  font-weight: 400;
}

p.five {
  font-weight: 500;
}

p.seven {
  font-weight: 700;
}

p.nine {
  font-weight: 900;
}

Ergebnis

Der seven-Absatz verwendet die extra-fette Schriftart. Während font-weight: 700 sowohl mit den FiraSans-Bold als auch FiraSans-ExtraBold-Deklarationen übereinstimmt, überschreibt die später deklarierte FiraSans-ExtraBold die FiraSans-Bold für diesen Wert.

Ähnlich verwenden sowohl 100 als auch 300 die leichte Schriftart; obwohl FiraSans-Regular und FiraSans-Light beide 300 in ihren Bereichen enthalten, wird FiraSans-Light später deklariert. Alternativ hätten wir FiraSans-Regular nach FiraSans-Light deklarieren können, müssten jedoch den font-weight-Deskriptorbereich ändern, wenn wir dies tun.

Festlegen eines Bereichs für eine variable Schriftart

In diesem Beispiel verwenden wir den font-weight-Deskriptor, um den Bereich der Gewichte einzuschränken, die bei Verwendung einer variablen Schriftart eingestellt werden können.

Wir fügen eine variable Schriftart, "League Mono", unter Verwendung einer einzigen @font-face At-Regel ein. Wir verwenden einen font-weight: 300 700-Wert, um den verfügbaren Gewichtungsbereich effektiv zu begrenzen. Wenn eine CSS-Regel unsere "League Mono" Schriftart verwendet und ein Gewicht außerhalb dieses Bereichs angibt, wird das Gewicht an den Bereich angepasst.

HTML

Wir fügen einen Absatz mit <output> ein, der ursprünglich auf 400 gesetzt ist, da dies das Standard-Schriftgewicht für ungestylten Absatztext ist. Dieser Absatz ist zwischen zwei anderen Absätzen eingebettet, damit Sie gerenderte und deklarierte Schriftgewichtwerte vergleichen können.

Wir fügen ein <input/range>-Element vom Typ range ein, eingebettet in ein <label>, wobei der step auf 50 gesetzt ist.

html
<p>LeagueMono, font-weight: 300 (comparison)</p>
<p id="example">LeagueMono, font-weight: <output>400</output> (example)</p>
<p>LeagueMono, font-weight: 700 (comparison)</p>
<label
  >Change the font weight:
  <input type="range" min="50" max="1000" step="50" value="400" />
</label>

CSS

Wir setzen den font-weight-Deskriptorbereich auf 300 700 und begrenzen die variable Schriftart auf diesen Bereich.

css
@font-face {
  font-family: LeagueMono;
  src: url("https://mdn.github.io/shared-assets/fonts/LeagueMono-VF.ttf");
  font-weight: 300 700;
}

p {
  font-family: LeagueMono, serif;
  font-size: 1.5rem;
}

p:first-of-type {
  font-weight: 300;
}

p:last-of-type {
  font-weight: 700;
}

JavaScript

Wir fügen einen Ereignishandler ein, der den font-weight-Eigenschaftswert des Absatzes aktualisiert und den Text entsprechend der Änderung aktualisiert:

js
const text = document.querySelector("#example");
const log = document.querySelector("output");
const range = document.querySelector("input");

range.addEventListener("change", () => {
  text.style.fontWeight = range.value;
  log.innerText = range.value;
});

Ergebnis

Verändern Sie das Schriftgewicht des Absatzes über den Bereich. Beachten Sie, dass der Beispielabsatz nicht leichter als der 300 Absatz darüber oder fetter als der 700 Absatz darunter wird; das Schriftgewicht wird an den durch den font-weight-Deskriptor definierten Bereich angepasst.

Spezifikationen

Specification
CSS Fonts Module Level 4
# font-prop-desc

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch