font CSS-Eigenschaft
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 CSS Kurzschreibweise setzt alle verschiedenen Eigenschaften einer Schriftart eines Elements fest. Alternativ setzt sie die Schriftart eines Elements auf eine Systemschriftart.
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;
}
Zusammenhängende Eigenschaften
Diese Eigenschaft ist eine Kurzschreibweise für die folgenden CSS-Eigenschaften:
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 spezifiziert, oder ein einzelnes <system-font-family-name> Schlüsselwort:
<'font-style'>Optional-
Siehe die
font-styleCSS-Eigenschaft. Standardwert istnormal. <font-variant-css2>Optional-
Entweder der
normalodersmall-capsWert derfont-variantEigenschaft. Standardwert istnormal. <'font-weight'>Optional-
Siehe die
font-weightCSS-Eigenschaft. Standardwert istnormal. <font-width-css3>Optional-
Die von der
font-widthCSS-Eigenschaft unterstützten Schlüsselwörter. Standardwert istnormal. <'font-size'>-
Siehe die
font-sizeCSS-Eigenschaft. <'line-height'>Optional-
Siehe die
line-heightCSS-Eigenschaft. Standardwert istnormal. <'font-family'>-
Siehe die
font-familyCSS-Eigenschaft. Muss der letzte Wert sein. <system-font-family-name>-
Ein einzelnes Schlüsselwort, das eine Systemschriftart darstellt, einschließlich:
caption-
Die Systemschriftart, die für beschriftete Steuerelemente (Buttons, Dropdowns, etc.) verwendet wird.
icon-
Die Systemschriftart, die zur Beschriftung von Symbolen verwendet wird.
-
Die Systemschriftart, die in Menüs (z. B. Dropdown-Menüs und Menüliste) verwendet wird.
message-box-
Die Systemschriftart, die in Dialogfeldern verwendet wird.
small-caption-
Die Systemschriftart, die zur Beschriftung kleiner Steuerelemente verwendet wird.
status-bar-
Die Systemschriftart, die in Fensterstatusleisten verwendet wird.
Es gibt mehrere nicht-standardisierte Werte, die mit Präfixen implementiert sind.
Beschreibung
Der font-Eigenschaftswert ist entweder ein einzelnes Schlüsselwort, das einen system-font-family-name darstellt, oder mehrere Longhand-Eigenschaftenwerte, die verwendet werden, um alle verschiedenen Eigenschaften der Schriftart eines Elements festzulegen.
Systemschrift-Erklärungen
Wird font als ein <system-font-family-name> Schlüsselwort spezifiziert, muss der volle Eigenschaftswert auf dieses einzelne, nicht auf Groß- und Kleinschreibung achtende Schlüsselwort festgelegt werden. Gültige Werte schließen caption, icon, menu, message-box, small-caption oder status-bar ein.
Browser unterstützen auch nicht-standardisierte Präfix-Werte:
- 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-apple-system-*Präfix-Systemschriftartnamen 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 oder <system-font-family-name> kann nur mit der font-Eigenschaft gesetzt werden. Das Definieren eines einzigen Schlüsselwortwerts, wie font: icon, setzt die Schriftfamilie, Größe, Gewicht, Stil usw. auf die Werte, die der Browser für die benannte Systemschriftart definiert. Diese Werte können alle mit Langform-Deklarationen geändert werden, die nach der font-Deklaration platziert werden.
Das Einschließen von font Langform-Komponenten nach dem <system-font-family-name> Schlüsselwort innerhalb eines font Eigenschaftswerts macht die Deklaration ungültig. Zum Beispiel ist font: icon small ungültig.
Erscheint ein <system-font-family-name> Schlüsselwort irgendwo im Wert, außer als erste Komponente, wird das Schlüsselwort als ein <ident> behandelt, das einen Standard-font-family-Namen repräsentiert. Zum Beispiel setzt die Deklaration font: small icon die font-family auf eine Schriftart namens icon, eine Nicht-Systemschriftart, die möglicherweise existiert oder nicht. Diese Deklaration setzt auch die font-size auf small und setzt alle anderen Kurzschreib-Komponenteneigenschaften auf ihre Anfangswerte zurück.
Kurzschrift Schrift-Erklärungen
Wird font als eine Kurzschreibweise für mehrere schriftbezogene Eigenschaften spezifiziert, dann:
-
muss sie Werte für:
-
sie kann optional Werte für:
font-stylefont-variantfont-weightfont-widthline-heightenthalten.
Wie bei jeder Kurzschreibweise werden alle der nicht spezifizierten Langform-Komponenteneigenschaften auf ihre Anfangswerte gesetzt, wodurch möglicherweise zuvor mit Nicht-Kurzschreib-Werten gesetzte Werte überschrieben werden. Zudem setzt die Kurzschreibweise die folgenden Eigenschaften auf ihre Anfangswerte zurück. Die Kurzschreibweise kann sie nicht explizit setzen:
Reihenfolge der Kurzschreib-Eigenschaft
Die Reihenfolge einiger Langform-Werte innerhalb der Kurzschreib-font-Deklaration muss ein paar Regeln folgen:
- Sowohl die
font-sizeals auch diefont-familyKomponenten sind erforderlich (außer bei Systemschrift-Erklärungen). - Die
font-style,font-variantundfont-weightKomponenten müssen demfont-sizeWert vorausgehen. - Eine
line-heightkann nur enthalten sein, wennfont-sizeenthalten ist. Ist vorhanden, muss dieline-heightunmittelbar nach derfont-sizefolgen, wobei die beiden Werte durch einen Schrägstrich (/) getrennt sind, zum Beispiel:16px / 3. - Die
font-familymuss der zuletzt angegebene Wert sein.
Komponenten mit begrenzten Werten
Aus Gründen der Abwärtskompatibilität beinhalten die gültigen Werte der font-variant und font-width Komponenten nicht alle gültigen Werte oder ihre Langform-Äquivalente.
Die gültigen Werte für die font-variant Komponente sind auf normal oder small-caps begrenzt. Obwohl keine anderen Werte unterstützt werden, setzt die Kurzschreib-font-Erklärung alle font-variant-* Langform-Eigenschaften 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 font-width Komponente sind auf Schlüsselwortwerte beschränkt: normal, ultra-condensed, extra-condensed, condensed, semi-condensed, semi-expanded, expanded, extra-expanded, ultra-expanded. Die font-width Langform-Eigenschaft unterstützt auch <percentage> Werte, aber sie sind 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 die font für alle <p> Elemente. Wir setzen die font-size auf 12px und die line-height auf 14px, getrennt durch einen Schrägstrich (/). Die Deklaration setzt auch die font-family auf sans-serif.
p {
font: 12px / 14px sans-serif;
}
Mehrere Eigenschaften
In diesem Beispiel setzen wir das font-weight auf bold, den font-style auf italic, die font-size auf large, die line-height auf 1.6 und die font-family auf serif.
p {
font: bold italic large / 1.6 serif;
}
Systemschrift
Dieses Beispiel zeigt die Verwendung der font-Eigenschaft zum Setzen einer Systemschrift.
CSS
Wir setzen die Schrift des Absatzes so, dass dieselbe font-family, line-height, font-size etc. wie die Statusleiste des Fensters verwendet wird, und setzen dann die line-height auf 1.6.
p {
font: status-bar;
line-height: 1.6;
}
HTML
Unser HTML enthält einen Absatz (<p>), der einen Link (<a>) mit einem komplizierten href Attributwert enthält. Wenn Sie den gerenderten Link schweben oder fokussieren, sollte die Statusleiste Ihres Browsers den Wert des href-Attributs 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 hinzu, das verhindert, dass das Dokument zu einer nicht vorhandenen Seite weitergeleitet wird, wenn der Link angeklickt wird.
const aElem = document.querySelector("a");
aElem.addEventListener("click", (e) => {
e.preventDefault();
return false;
});
Ergebnis
Schweben oder fokussieren Sie den Link. Die Schrift sollte dieselbe Familie und Größe wie der Text in Ihrer Statusleiste am unteren Rand Ihres Browserfensters haben.
Kurzschrift-Deklarationserzeuger
In dieser Live-Demonstration können Sie verschiedene Optionsfelder auswählen, um unterschiedliche Kurzschreibwerte zu erzeugen, während Sie die Auswirkungen der von Ihnen erstellten Kurzschreib-Erklärungen visualisieren.
Spezifikationen
| Spezifikation |
|---|
| CSS Fonts Module Level 4> # font-prop> |
Browser-Kompatibilität
Siehe auch
font-stylefont-weight- System font stack auf CSS-Tricks (2017)