CSS-Eigenschaft font
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.
Die font-Kurzschreibweise von CSS legt die verschiedenen Schrifteigenschaften eines Elements fest. Alternativ weist sie einem Element eine Systemschrift zu.
Probieren Sie es aus
font:
1.2rem "Fira Sans",
sans-serif;
font:
italic 1.2rem "Fira Sans",
serif;
font: italic small-caps bold 16px/2 cursive;
font: small-caps bold 24px/1 sans-serif;
font: caption;
<section id="default-example">
<q id="example-element">
Prejudices, it is well known, are most difficult to eradicate from the heart
whose soil has never been loosened or fertilized by education: they grow
there, firm as weeds among stones.
</q>
</section>
@font-face {
font-family: "Fira Sans";
src:
local("FiraSans-Regular"),
url("/shared-assets/fonts/FiraSans-Regular.woff2") format("woff2");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: "Fira Sans";
src:
local("FiraSans-Italic"),
url("/shared-assets/fonts/FiraSans-Italic.woff2") format("woff2");
font-weight: normal;
font-style: italic;
}
section {
margin-top: 10px;
font-size: 1.1em;
}
Zusammengefasste Eigenschaften
Diese Eigenschaft ist eine Kurzschreibweise für die folgenden CSS-Eigenschaften:
Nur zurückgesetzte Untereigenschaften
Diese Eigenschaft setzt die folgenden CSS-Eigenschaften auf ihre Anfangswerte zurück:
Syntax
/* font-size font-family */
font: 1.2em sans-serif;
/* font-size/line-height font-family */
font: 1.2em/2 "Fira Sans", sans-serif;
/* font-style font-weight font-size font-family */
font: italic bold 1.2em monospace;
/* font-width font-variant font-size font-family */
font: ultra-condensed small-caps 1.2em Montserrat, Helvetica, sans-serif;
/* system font */
font: caption;
Werte
Der Wert ist entweder eine Kurzschreibweise für verschiedene schriftbezogene Eigenschaften oder ein einzelnes <system-font-family-name>-Schlüsselwort:
<'font-style'>Optional-
Siehe die CSS-Eigenschaft
font-style. Der Standardwert istnormal. <font-variant-css2>Optional-
Entweder der Wert
normalodersmall-capsder Eigenschaftfont-variant. Der Standardwert istnormal. <'font-weight'>Optional-
Siehe die CSS-Eigenschaft
font-weight. Der Standardwert istnormal. <font-width-css3>Optional-
Die von der CSS-Eigenschaft
font-widthunterstützten Schlüsselwörter. Der Standardwert istnormal. <'font-size'>-
Siehe die CSS-Eigenschaft
font-size. <'line-height'>Optional-
Siehe die CSS-Eigenschaft
line-height. Der Standardwert istnormal. <'font-family'>-
Siehe die CSS-Eigenschaft
font-family. Muss der letzte Wert sein. <system-font-family-name>-
Ein einzelnes Schlüsselwort, das eine Systemschrift bezeichnet. Dazu gehören:
caption-
Die Systemschrift für Steuerelemente mit Beschriftung (Schaltflächen, Dropdown-Listen usw.).
icon-
Die Systemschrift für Symbolbeschriftungen.
-
Die Systemschrift für Menüs (z. B. Dropdown-Menüs und Menülisten).
message-box-
Die Systemschrift für Dialogfelder.
small-caption-
Die Systemschrift für die Beschriftung kleiner Steuerelemente.
status-bar-
Die Systemschrift für Statusleisten von Fenstern.
Außerdem sind mehrere nicht standardisierte Werte mit Präfixen implementiert.
Beschreibung
Der Wert der Eigenschaft font ist entweder ein einzelnes Schlüsselwort, das eine Systemschrift bezeichnet, oder eine Kombination von Werten einzelner Eigenschaften, mit denen die verschiedenen Schrifteigenschaften eines Elements festgelegt werden.
Deklarationen von Systemschriften
Wenn font als <system-font-family-name>-Schlüsselwort angegeben wird, muss der gesamte Eigenschaftswert aus diesem einen Schlüsselwort bestehen. Dabei wird die Groß- und Kleinschreibung nicht berücksichtigt. Gültige Werte sind caption, icon, menu, message-box, small-caption und status-bar.
Browser unterstützen außerdem nicht standardisierte Werte mit Präfixen:
- Chromium implementiert
-webkit-control,-webkit-small-controlund-webkit-mini-control. - Webkit unterstützt die Chromium-Werte und ergänzt
-webkit-body,-webkit-pictographund-webkit-ruby-textsowie mehrere Systemschriftnamen mit dem Präfix-apple-system-*. - Gecko implementiert
-moz-window,-moz-document,-moz-desktop,-moz-info,-moz-dialog,-moz-button,-moz-pull-down-menu,-moz-listund-moz-field.
Eine Systemschrift, also ein <system-font-family-name>, kann nur mit der Eigenschaft font festgelegt werden. Ein einzelner Schlüsselwortwert wie font: icon setzt Schriftfamilie, Größe, Stärke, Stil usw. auf die Werte, die der Browser für die benannte Systemschrift definiert. Alle diese Werte können durch Deklarationen einzelner Eigenschaften geändert werden, die nach der font-Deklaration stehen.
Wenn innerhalb des Werts einer font-Eigenschaft nach dem <system-font-family-name>-Schlüsselwort weitere Komponenten der einzelnen font-Eigenschaften stehen, ist die Deklaration ungültig. Beispielsweise ist font: icon small ungültig.
Wenn ein <system-font-family-name>-Schlüsselwort an einer anderen Stelle als der ersten Komponente des Werts steht, wird es als <ident> behandelt, der einen gewöhnlichen font-family-Namen bezeichnet. Beispielsweise setzt die Deklaration font: small icon die font-family auf eine Schrift namens icon – keine Systemschrift, die möglicherweise existiert oder auch nicht. Diese Deklaration setzt außerdem font-size auf small und alle übrigen Komponenten der Kurzschreibweise auf ihre Anfangswerte zurück.
font-Deklarationen in Kurzschreibweise
Wenn font als Kurzschreibweise für mehrere schriftbezogene Eigenschaften angegeben wird, gilt Folgendes:
-
Werte für diese Eigenschaften sind erforderlich:
-
Werte für diese Eigenschaften sind optional:
Wie bei jeder Kurzschreibweise werden alle nicht angegebenen Einzelkomponenten auf ihre Anfangswerte gesetzt. Dadurch können zuvor mit einzelnen Eigenschaften festgelegte Werte überschrieben werden. Darüber hinaus setzt die Kurzschreibweise die folgenden Eigenschaften auf ihre Anfangswerte zurück. Sie können mit der Kurzschreibweise nicht ausdrücklich festgelegt werden:
Reihenfolge der Werte in der Kurzschreibweise
Für die Reihenfolge einiger Werte innerhalb einer font-Deklaration in Kurzschreibweise gelten bestimmte Regeln:
- Die Komponenten
font-sizeundfont-familysind beide erforderlich (außer bei Deklarationen von Systemschriften). - Die Komponenten
font-style,font-variantundfont-weightmüssen vor dem Wert fürfont-sizestehen. - Ein Wert für
line-heightkann nur angegeben werden, wenn auchfont-sizeangegeben ist. Istline-heightvorhanden, muss der Wert unmittelbar auffont-sizefolgen. Die beiden Werte werden durch einen Schrägstrich (/) getrennt, zum Beispiel:16px / 3. font-familymuss der letzte angegebene Wert sein.
Komponenten mit eingeschränkten Werten
Aus Gründen der Abwärtskompatibilität umfassen die gültigen Werte der Komponenten font-variant und font-width nicht alle Werte, die für die entsprechenden einzelnen Eigenschaften gültig sind.
Die gültigen Werte für die Komponente font-variant sind auf normal und small-caps beschränkt. Obwohl keine weiteren Werte unterstützt werden, setzt eine font-Deklaration in Kurzschreibweise alle einzelnen font-variant-*-Eigenschaften auf normal zurück, darunter font-variation-settings, font-variant-position, font-variant-emoji, font-variant-caps, font-variant-ligatures, font-variant-numeric, font-variant-east-asian und font-variant-alternates.
Die gültigen Werte für die Komponente font-width sind auf folgende Schlüsselwörter beschränkt: normal, ultra-condensed, extra-condensed, condensed, semi-condensed, semi-expanded, expanded, extra-expanded, ultra-expanded. Die einzelne Eigenschaft font-width unterstützt auch <percentage>-Werte, diese sind jedoch innerhalb der Kurzschreibweise nicht gültig.
Formale Definition
| Anfangswert | wie die jeweiligen Kurzschreibweisen:
|
|---|---|
| Anwendbar auf | all elements and text. Auch anwendbar auf ::first-letter und ::first-line. |
| Vererbt | Ja |
| Prozentwerte | wie die jeweiligen Kurzschreibweisen:
|
| Berechneter Wert | wie die jeweiligen Kurzschreibweisen:
|
| Animationstyp | wie die jeweiligen Kurzschreibweisen:
|
Formale Syntax
font =
[ [ <'font-style'> || <font-variant-css2> || <'font-weight'> || <font-width-css3> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'># ] |
<system-font-family-name>
<font-style> =
normal |
italic |
left |
right |
oblique <angle [-90deg,90deg]>?
<font-variant-css2> =
normal |
small-caps
<font-weight> =
<font-weight-absolute> |
bolder |
lighter
<font-width-css3> =
normal |
ultra-condensed |
extra-condensed |
condensed |
semi-condensed |
semi-expanded |
expanded |
extra-expanded |
ultra-expanded
<font-size> =
<absolute-size> |
<relative-size> |
<length-percentage [0,∞]> |
math
<line-height> =
normal |
<number [0,∞]> |
<length-percentage [0,∞]>
<font-family> =
[ <font-family-name> | <generic-font-family> ]#
<system-font-family-name> =
caption |
icon |
menu |
message-box |
small-caption |
status-bar
<font-weight-absolute> =
normal |
bold |
<number [1,1000]>
<absolute-size> =
xx-small |
x-small |
small |
medium |
large |
x-large |
xx-large |
xxx-large
<relative-size> =
larger |
smaller
<length-percentage> =
<length> |
<percentage>
<font-family-name> =
<string> |
<custom-ident>+
<generic-font-family> =
<generic-font-script-specific> |
<generic-font-complete> |
<generic-font-incomplete>
<generic-font-script-specific> =
generic( fangsong ) |
generic( kai ) |
generic( khmer-mul ) |
generic( nastaliq )
<generic-font-complete> =
serif |
sans-serif |
system-ui |
cursive |
fantasy |
math |
monospace
<generic-font-incomplete> =
ui-serif |
ui-sans-serif |
ui-monospace |
ui-rounded
Beispiele
>Grundlegende Verwendung
Dieses Beispiel definiert font für alle <p>-Elemente. Wir setzen font-size auf 12px und line-height auf 14px und trennen die Werte durch einen Schrägstrich (/). Die Deklaration setzt außerdem font-family auf sans-serif.
p {
font: 12px / 14px sans-serif;
}
Mehrere Eigenschaften
In diesem Beispiel setzen wir font-weight auf bold, font-style auf italic, font-size auf large, line-height auf 1.6 und font-family auf serif.
p {
font: bold italic large / 1.6 serif;
}
Systemschrift
Dieses Beispiel zeigt, wie Sie mit der Eigenschaft font eine Systemschrift festlegen.
HTML
Unser HTML enthält einen Absatz (<p>) mit einem Link (<a>), dessen Attribut href einen komplizierten Wert hat. Wenn Sie den Mauszeiger über den dargestellten Link bewegen oder ihn fokussieren, sollte die Statusleiste Ihres Browsers den Wert des Attributs href anzeigen.
<p>
<a
href="/%20The%20font%20should%20be%20the%20same%20
family%20and%20size%20and%20the%20text%20in%20the%20example."
>Hover or focus this text. The font should be the same family and size and
the text in your status bar.</a
>
</p>
CSS
Wir geben dem Absatz dieselben Werte für font-family, line-height, font-size usw. wie der Statusleiste des Fensters. Anschließend setzen wir line-height auf 1.6.
p {
font: status-bar;
line-height: 1.6;
}
JavaScript
Da die URL in unserem HTML-Link kein gutes Praxisbeispiel ist, fügen wir ein Skript hinzu. Es verhindert, dass das Dokument beim Anklicken des Links zu einer nicht existierenden Seite weiterleitet.
const aElem = document.querySelector("a");
aElem.addEventListener("click", (e) => {
e.preventDefault();
return false;
});
Ergebnis
Bewegen Sie den Mauszeiger über den Link oder fokussieren Sie ihn. Schriftfamilie und -größe sollten mit dem Text in der Statusleiste am unteren Rand Ihres Browserfensters übereinstimmen.
Generator für Deklarationen in Kurzschreibweise
In dieser interaktiven Demonstration können Sie verschiedene Optionsfelder auswählen, um unterschiedliche Werte für die Kurzschreibweise zu erzeugen und die Auswirkungen der erstellten Deklarationen zu sehen.
Spezifikationen
| Spezifikation |
|---|
| CSS Fonts Module Level 4> # font-prop> |
Browser-Kompatibilität
Siehe auch
font-stylefont-weight- Systemschrift-Stapel auf CSS-Tricks (2017)