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 Kurzform Eigenschaft setzt alle verschiedenen Eigenschaften der Schriftart eines Elements. Alternativ kann sie die Schriftart eines Elements auf eine Systemschriftart setzen.
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;
}
Zusammengesetzte Eigenschaften
Diese Eigenschaft ist eine Kurzform 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 Kurzform zur Angabe der verschiedenen schriftbezogenen Eigenschaften oder ein einzelnes <system-font-family-name> Schlüsselwort:
<'font-style'>Optional-
Siehe die
font-styleCSS-Eigenschaft. Standard istnormal. <font-variant-css2>Optional-
Entweder der Wert
normalodersmall-capsder Eigenschaftfont-variant. Standard istnormal. <'font-weight'>Optional-
Siehe die
font-weightCSS-Eigenschaft. Standard istnormal. <font-width-css3>Optional-
Die von der
font-widthCSS-Eigenschaft unterstützten Schlüsselwörter. Standard istnormal. <'font-size'>-
Siehe die
font-sizeCSS-Eigenschaft. <'line-height'>Optional-
Siehe die
line-heightCSS-Eigenschaft. Standard istnormal. <'font-family'>-
Siehe die
font-familyCSS-Eigenschaft. Muss der letzte Wert sein. <system-font-family-name>-
Ein einzelnes Schlüsselwort, das eine Systemschriftart repräsentiert, einschließlich:
caption-
Die Systemschriftart, die für beschriftete Steuerelemente (Buttons, Dropdowns usw.) verwendet wird.
icon-
Die Systemschriftart zur Beschriftung von Symbolen.
-
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 für die Beschriftung kleiner Steuerelemente.
status-bar-
Die Systemschriftart, die in Fensterstatusleisten verwendet wird.
Es gibt mehrere nicht standardisierte Werte, die mit Präfixen implementiert sind.
Beschreibung
Der Wert der font-Eigenschaft ist entweder ein einzelnes Schlüsselwort, das einen system-font-family-name darstellt, oder mehrere Langform-Eigenschaftswerte, die verwendet werden, um alle verschiedenen Eigenschaften der Schriftart eines Elements festzulegen.
Systemschriftarten-Deklarationen
Wenn font als <system-font-family-name> Schlüsselwort angegeben wird, muss der gesamte Eigenschaftswert auf dieses einzelne, nicht fallunterscheidende Schlüsselwort gesetzt sein. 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 enthält die Chromium-Werte und fügt
-webkit-body,-webkit-pictographund-webkit-ruby-textsowie mehrere systemschriftarten mit dem Präfix-apple-system-*hinzu. - Gecko implementiert
-moz-window,-moz-document,-moz-desktop,-moz-info,-moz-dialog,-moz-button,-moz-pull-down-menu,-moz-listund-moz-field.
Die Systemschriftart oder <system-font-family-name> kann nur mit der Eigenschaft font gesetzt werden. Wenn ein einzelnes Schlüsselwort wie font: icon definiert wird, legt es die Schriftfamilie, die Größe, das Gewicht, den Stil usw. auf die vom Browser definierten Werte für die benannte Systemschriftart fest. Diese Werte können alle mit Langform-Deklarationen geändert werden, die nach der font Deklaration platziert werden.
Wenn innerhalb eines font Eigenschaftswertes nach dem <system-font-family-name> Schlüsselwort font Langform-Komponenten eingefügt werden, macht dies die Deklaration ungültig. Zum Beispiel ist font: icon small ungültig.
Erscheint ein <system-font-family-name> Schlüsselwort an anderer Stelle im Wert als an erster Stelle, wird das Schlüsselwort als <ident> behandelt, das einen standardmäßigen font-family Namen repräsentiert. Beispielsweise setzt die Deklaration font: small icon die font-family auf eine Schriftart mit dem Namen icon, eine Nicht-Systemschriftart, die möglicherweise nicht existiert. Diese Deklaration setzt auch die font-size auf small und setzt alle anderen Kurzform-Komponenteneigenschaften auf ihre Initialwerte zurück.
Kurzform-Schriftdeklarationen
Wenn font als eine Kurzform für mehrere schriftbezogene Eigenschaften angegeben wird, dann:
-
muss es Werte einschließen für:
-
kann es optional Werte einschließen für:
Wie bei jeder Kurzformeigenschaft werden alle Langform-Komponenteneigenschaften, die nicht spezifiziert sind, auf ihre Initialwerte gesetzt, möglicherweise überschreiben sie Werte, die zuvor mit Nicht-Kurzform-Eigenschaften gesetzt wurden. Zusätzlich setzt die Kurzform folgende Eigenschaften auf ihre Initialwerte zurück. Die Kurzform kann sie nicht explizit festlegen:
Reihenfolge der Kurzform-Eigenschaften
Die Reihenfolge einiger Langform-Werte innerhalb der Kurzform font Deklaration muss einige Regeln befolgen:
- Sowohl die
font-sizeals auch diefont-familyKomponenten sind erforderlich (außer bei Systemschriftarten-Deklarationen). - Die
font-style,font-variantundfont-weightKomponenten müssen derfont-sizeWert vorausgehen. - Eine
line-heightkann nur eingeschlossen werden, wennfont-sizeeingeschlossen wird. Wenn vorhanden, muss dieline-heightunmittelbar derfont-sizefolgen, wobei die beiden Werte durch einen Schrägstrich (/) getrennt sein müssen, zum Beispiel:16px / 3. - Die
font-familymuss der letzte spezifizierte Wert sein.
Komponenten mit eingeschränkten Werten
Für die Rückwärtskompatibilität beinhalten die gültigen Werte der font-variant und font-width Komponente nicht alle gültigen Werte oder die Langform-Äquivalente.
Die gültigen Werte für die font-variant Komponente sind auf normal oder small-caps beschränkt. Obwohl keine anderen Werte unterstützt werden, setzt die Kurzform-Deklaration font 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 beschränken sich auf Schlüsselwortwerte: 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 diese sind nicht innerhalb der Kurzform 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 die font-weight auf bold, die 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;
}
Systemschriftart
Dieses Beispiel demonstriert die Verwendung der font Eigenschaft, um eine Systemschriftart zu setzen.
CSS
Wir setzen die Schrift der Absätze so, dass sie dieselbe font-family, line-height, font-size, usw. hat wie die Statusleiste des Fensters, dann setzen wir 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 verworrenen 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 beim Klicken auf den Link auf eine nicht existierende Seite weiterleitet.
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 haben wie der Text in Ihrer Statusleiste am unteren Rand Ihres Browserfensters.
Kurzform-Deklaration-Ersteller
In dieser Live-Demonstration können Sie verschiedene Optionsfelder auswählen, um unterschiedliche Kurzform-Werte zu erzeugen und dabei die Auswirkungen der von Ihnen erstellten Kurzform-Deklarationen zu 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)