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 CSS-Kurzschreibweise font legt alle verschiedenen Eigenschaften der Schrift eines Elements fest. Alternativ legt sie die Schrift eines Elements auf eine Systemschrift fest.
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;
}
Bestandteileigenschaften
Diese Eigenschaft ist eine Kurzschreibweise für die folgenden CSS-Eigenschaften:
Nur-zurücksetzbare 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, die die verschiedenen schriftbezogenen Eigenschaften angibt, oder ein einzelnes Schlüsselwort <system-font-family-name>:
<'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 repräsentiert, darunter:
caption-
Die Systemschrift, die für beschriftete Steuerelemente verwendet wird (Schaltflächen, Dropdown-Menüs usw.).
icon-
Die Systemschrift, die zur Beschriftung von Symbolen verwendet wird.
-
Die Systemschrift, die in Menüs verwendet wird (z. B. Dropdown-Menüs und Menülisten).
message-box-
Die Systemschrift, die in Dialogfeldern verwendet wird.
small-caption-
Die Systemschrift, die zur Beschriftung kleiner Steuerelemente verwendet wird.
status-bar-
Die Systemschrift, die in Fensterstatusleisten verwendet wird.
Es gibt mehrere nicht standardisierte Werte, die mit Präfixen implementiert sind.
Beschreibung
Der Eigenschaftswert von font ist entweder ein einzelnes Schlüsselwort, das einen Systemschriftfamiliennamen repräsentiert, oder mehrere Langform-Eigenschaftswerte, die verwendet werden, um alle verschiedenen Eigenschaften der Schrift eines Elements festzulegen.
Systemschrift-Deklarationen
Wenn font als Schlüsselwort <system-font-family-name> angegeben wird, muss der vollständige Eigenschaftswert auf dieses einzelne Schlüsselwort ohne Berücksichtigung der Groß- und Kleinschreibung gesetzt werden. Gültige Werte sind caption, icon, menu, message-box, small-caption oder status-bar.
Browser unterstützen auch nicht standardisierte Werte mit Präfixen:
- Chromium implementiert
-webkit-control,-webkit-small-controlund-webkit-mini-control. - Webkit umfasst die Chromium-Werte und fügt
-webkit-body,-webkit-pictographund-webkit-ruby-textsowie mehrere mit-apple-system-*präfixierte Systemschrift-Namen hinzu. - Gecko implementiert
-moz-window,-moz-document,-moz-desktop,-moz-info,-moz-dialog,-moz-button,-moz-pull-down-menu,-moz-listund-moz-field.
Die Systemschrift beziehungsweise <system-font-family-name> kann nur mit der Eigenschaft font festgelegt werden. Die Definition eines einzelnen Schlüsselwortwerts wie font: icon legt Schriftfamilie, Schriftgröße, Schriftschnitt, Schriftstil usw. auf die Werte fest, die der Browser für die benannte Systemschrift definiert. Diese Werte können alle mit Langform-Deklarationen geändert werden, die nach der font-Deklaration stehen.
Das Einschließen beliebiger font-Langformkomponenten nach dem Schlüsselwort <system-font-family-name> innerhalb eines Eigenschaftswerts von font macht die Deklaration ungültig. Beispielsweise ist font: icon small ungültig.
Wenn ein Schlüsselwort <system-font-family-name> an einer anderen Stelle im Wert als der ersten Komponente erscheint, wird das Schlüsselwort als <ident> behandelt, das einen standardmäßigen font-family-Namen darstellt. Beispielsweise setzt die Deklaration font: small icon die font-family auf eine Schrift namens icon, eine Nicht-Systemschrift, die möglicherweise existiert oder nicht. Diese Deklaration setzt außerdem font-size auf small und setzt alle anderen Komponenteneigenschaften der Kurzschreibweise auf ihre Anfangswerte zurück.
Kurzschrift-Deklarationen für Schriftarten
Wenn font als Kurzschreibweise für mehrere schriftbezogene Eigenschaften angegeben wird, dann:
-
muss sie Werte enthalten für:
-
kann sie optional Werte enthalten für:
Wie bei jeder Kurzschreibweise werden alle nicht angegebenen Langform-Komponenteneigenschaften auf ihre Anfangswerte gesetzt, wodurch möglicherweise zuvor mit Nicht-Kurzschreibweise-Eigenschaften festgelegte Werte überschrieben werden. Zusätzlich setzt die Kurzschreibweise die folgenden Eigenschaften auf ihre Anfangswerte zurück. Die Kurzschreibweise kann sie nicht explizit festlegen:
Reihenfolge der Kurzschreibweise-Eigenschaften
Die Reihenfolge einiger Langformwerte innerhalb der Kurzschreibweise-Deklaration font muss einigen Regeln folgen:
- Sowohl die Komponenten
font-sizeals auchfont-familysind erforderlich (außer bei Systemschrift-Deklarationen). - Die Komponenten
font-style,font-variantundfont-weightmüssen dem Wertfont-sizevorangehen. - Ein
line-heightkann nur einbezogen werden, wennfont-sizeeinbezogen wird. Falls vorhanden, mussline-heightunmittelbar auffont-sizefolgen, wobei die beiden Werte durch einen Schrägstrich (/) getrennt sind, zum Beispiel:16px / 3. font-familymuss der zuletzt angegebene Wert sein.
Komponenten mit eingeschränkten Werten
Aus Gründen der Abwärtskompatibilität enthalten die gültigen Werte der Komponenten font-variant und font-width nicht alle gültigen Werte oder Langform-Entsprechungen.
Die gültigen Werte für die Komponente font-variant sind auf normal oder small-caps beschränkt. Obwohl keine anderen Werte unterstützt werden, setzt die Kurzschreibweise-Deklaration font alle Langform-Eigenschaften font-variant-* auf normal zurück, einschließlich 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 Schlüsselwortwerte beschränkt: normal, ultra-condensed, extra-condensed, condensed, semi-condensed, semi-expanded, expanded, extra-expanded, ultra-expanded. Die Langform-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 sie 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 demonstriert die Verwendung der Eigenschaft font, um eine Systemschrift festzulegen.
CSS
Wir setzen die Schrift des Absatzes auf dieselbe font-family, line-height, font-size usw. wie die Statusleiste des Fensters und setzen dann line-height auf 1.6.
p {
font: status-bar;
line-height: 1.6;
}
HTML
Unser HTML enthält einen Absatz (<p>) mit einem Link (<a>) mit einem verschachtelten Wert für das Attribut href. Wenn Sie den gerenderten Link mit der Maus überfahren oder 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>
JavaScript
Da die URL in unserem HTML-Link keine gute Praxis ist, fügen wir ein Skript ein, das verhindert, dass das Dokument auf eine nicht vorhandene Seite weitergeleitet wird, wenn auf den Link geklickt wird.
const aElem = document.querySelector("a");
aElem.addEventListener("click", (e) => {
e.preventDefault();
return false;
});
Ergebnis
Fahren Sie mit der Maus über den Link oder fokussieren Sie ihn. Die Schrift sollte dieselbe Familie und Größe haben wie der Text in Ihrer Statusleiste am unteren Rand Ihres Browserfensters.
Generator für Kurzschreibweise-Deklarationen
In dieser Live-Demonstration können Sie verschiedene Optionsfelder auswählen, um unterschiedliche Kurzschreibweise-Werte zu generieren, während Sie die Auswirkungen der von Ihnen erstellten Kurzschreibweise-Deklarationen visualisieren.
Spezifikationen
| Spezifikation |
|---|
| CSS Fonts Module Level 4> # font-prop> |
Browser-Kompatibilität
Siehe auch
font-stylefont-weight- Systemschrift-Stack auf CSS-Tricks (2017)