DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!
Die Eigenschaft font-size gibt die Größe oder Höhe der Schriftart an. font-size wirkt sich nicht nur auf die Schriftart aus, auf die sie angewendet wird, sondern wird auch zur Berechnung des Werts von em, rem und ex Längeneinheiten verwendet.
p {
font-size: 20px;
}
font-size kann Schlüsselwörter, Längeneinheiten oder Prozentsätze als Werte akzeptieren. Es ist jedoch wichtig zu beachten, dass font-size ein obligatorischer Wert ist, wenn er als Teil der font Kurzschreibweise deklariert wird. Wenn er nicht in der Kurzschreibweise enthalten ist, wird die gesamte Zeile ignoriert.
Längenwerte (z. B. px, em, rem, ex usw.), die auf font-size angewendet werden, dürfen nicht negativ sein.
Absolute Schlüsselwörter und Werte
.element {
font-size: small;
}
Es akzeptiert die folgenden absoluten Schlüsselwortwerte
xx-smallx-smallkleinmittelgroßx-largexx-large
Diese absoluten Werte werden auf spezifische Schriftgrößen abgebildet, die vom Browser berechnet werden. Sie können jedoch auch zwei Schlüsselwortwerte verwenden, die sich auf die Schriftgröße des übergeordneten Elements beziehen.
Andere absolute Werte umfassen mm (Millimeter), cm (Zentimeter), in (Zoll), pt (Punkte) und pc (Pica). Ein Punkt entspricht 1/72 Zoll, während ein Pica 12 Punkten entspricht – diese Werte werden typischerweise für gedruckte Dokumente verwendet.
Relative Schlüsselwörter
.element {
font-size: larger;
}
largersmaller
Wenn beispielsweise das übergeordnete Element eine Schriftgröße von small hat, führt ein untergeordnetes Element mit einer definierten relativen Größe von larger dazu, dass die Schriftgröße für das untergeordnete Element gleich medium ist.
Prozentwerte
.element {
font-size: 110%;
}
Prozentwerte, wie z. B. das Festlegen einer Schriftgröße von 110 %, beziehen sich ebenfalls auf die Schriftgröße des übergeordneten Elements, wie in der folgenden Demo gezeigt.
Sehen Sie den Pen qdbELL von CSS-Tricks (@css-tricks) auf CodePen.
Die em-Einheit
.element {
font-size: 2em;
}
Die em-Einheit ist eine relative Einheit, die auf dem berechneten Wert der Schriftgröße des übergeordneten Elements basiert. Das bedeutet, dass untergeordnete Elemente immer von ihrem Elternteil abhängig sind, um ihre Schriftgröße festzulegen. Zum Beispiel:
<div class="container">
<h2>This is a heading</h2>
<p>This is some text.</p>
</div>
.container {
font-size: 16px;
}
p {
font-size: 1em;
}
h2 {
font-size: 2em;
}
Im obigen Beispiel hat der Absatz eine Schriftgröße von 16 Pixel, da 1 x 16 = 16 Pixel, während die Überschrift 32 Pixel beträgt, da 2 x 16 = 32 Pixel. Es gibt viele Vorteile beim Skalieren von Typografie basierend auf der Schriftgröße des übergeordneten Elements, nämlich dass wir Elemente innerhalb eines Containers verpacken können und wissen, dass alle Kinder immer zueinander relativ sind.
Sehen Sie den Pen Herausfinden, wie die em-Einheit funktioniert von CSS-Tricks (@css-tricks) auf CodePen.
Die rem-Einheit
Bei rem-Einheiten hängt die Schriftgröße jedoch vom Wert des Wurzelelements (oder des html-Elements) ab.
html {
font-size: 16px;
}
p {
font-size: 1.5rem;
}
Im obigen Beispiel entspricht die rem-Einheit 16 Pixel (da sie vom html/Wurzelelement geerbt wird) und somit berechnet sich die Schriftgröße für alle Paragraphenelemente auf 24 Pixel (1,5 x 16 = 24). Im Gegensatz zu em-Einheiten ignoriert der Paragraph die Formatierung all seiner Eltern, außer des Wurzelelements.
Diese Einheit wird von den folgenden Browsern unterstützt
| Chrome | Safari | Firefox | Opera | IE | Android | iOS |
|---|---|---|---|---|---|---|
| Funktioniert | Funktioniert | Funktioniert | Funktioniert | 10+ | Funktioniert | Funktioniert |
Die ex-Einheit
.element {
font-size: 20ex;
}
Für ex-Einheiten wäre 1ex gleich der berechneten Höhe des Kleinbuchstabens x des Wurzelelements. Im folgenden Beispiel ist das html-Element auf 20px eingestellt, und alle anderen Schriftgrößen werden durch die x-Höhe dieser speziellen Schriftart bestimmt.
Sehen Sie den Pen Herausfinden, wie die ex-Einheit funktioniert von CSS-Tricks (@css-tricks) auf CodePen.
Experimentieren Sie mit der obigen Demo, indem Sie font-family für das html-Element ersetzen, um zu sehen, wie sich die anderen Schriftgrößen ändern.
Viewport-Einheiten
.element-one {
font-size: 100vh;
}
.element-two {
font-size: 100vw;
}
Viewport-Einheiten wie vw und vh legen die Schriftgröße eines Elements relativ zu den Abmessungen des Viewports fest.
- 1vw = 1 % der Viewport-Breite
- 1vh = 1 % der Viewport-Höhe
Nehmen wir also das folgende Beispiel:
.element {
font-size: 100vh;
}
Dann besagt dies, dass die Schriftgröße des Elements jederzeit 100 % der Höhe des Viewports betragen soll (50vh wären 50 %, 15vh wären 15 % und so weiter). Probieren Sie im folgenden Demo die Größenänderung der Höhe des Beispiels aus, um die Typografie strecken zu sehen.
Sehen Sie den Pen Größenanpassung von Typografie mit vh-Einheiten von CSS-Tricks (@css-tricks) auf CodePen.
vw-Einheiten unterscheiden sich dadurch, dass sie die Höhe der Schriftzeichen durch die Breite des Viewports festlegen. Sie müssen daher im folgenden Demo das Browserfenster horizontal skalieren, um diese Änderungen zu sehen.
Sehen Sie den Pen Größenanpassung von Typografie mit vw-Einheiten von CSS-Tricks (@css-tricks) auf CodePen.
Diese Einheiten werden von den folgenden Browsern unterstützt
| Chrome | Safari | Firefox | Opera | IE | Android | iOS |
|---|---|---|---|---|---|---|
| 31+ | 7+ | 31+ | 27+ | 9+ | 4.4+ | 7.1+ |
Es ist wichtig zu beachten, dass es zwei weitere Viewport-Einheiten gibt: vmin und vmax. Die erste findet die Werte von vh und vw und setzt die Schriftgröße auf den kleinsten der beiden, während vmax die Schriftgröße auf den größten dieser beiden Werte setzt.
Die ch-Einheit
.element {
font-size: 24ch;
}
Die ch-Einheit ähnelt der ex-Einheit darin, dass sie die Schriftgröße eines Elements in Bezug auf die Breite des 0 (Null)-Glyphen der Schriftart festlegt.
Sehen Sie den Pen Größenanpassung von Typografie mit ch-Einheiten von CSS-Tricks (@css-tricks) auf CodePen.
Diese Einheit wird unterstützt von
| Chrome | Safari | Firefox | Opera | IE | Android | iOS |
|---|---|---|---|---|---|---|
| 27+ | Funktioniert | 10+ | Funktioniert | 9+ | Funktioniert | Funktioniert |
Danke für die richtige Anleitung.
Danke für den Artikel, Chris.
Gerade bemerkt, beim Spielen mit der Demo http://codepen.io/malyw/pen/VKOdmL
dass die 1ex-Größe nicht aus "dem Kleinbuchstaben x des Wurzelelements" berechnet wird, sondern
"dem Kleinbuchstaben x des ELEMENT-Fonts",
was gemäß der Spezifikation ist
https://www.w3.org/TR/css3-values/#relative-lengths
Wenn Sie zum Beispiel im Demo die Schriftgröße für .wrapper ändern, wird dies die Elemente beeinflussen.
Wie bekommt man die Schriftgröße mit einem CSS-Selektor?
Es wäre gut zu wissen, wie man die Schriftgröße an das übergeordnete Element anpasst, zum Beispiel wie man den Inhalt einer Tabellenzelle oder eines Div/Span-Elements an die Größe des Elements skaliert.
Dies ist ein ungelöstes Problem. Aber ich habe einen Vorschlag eingereicht: https://github.com/w3c/csswg-drafts/issues/1645
Danke für diesen Artikel. Und ich habe eine Frage. Wie stellt man die Schriftgröße ein, wenn ein Windows-Benutzer seine Windows-Anzeigeeinstellung auf den empfohlenen 150 % ändert (dies beeinträchtigt alles)? Denn wenn ich eine Website erstelle, arbeite ich mit einer 1:1-Ansicht und wenn dann jemand diese 150 %-Einstellung hat, ist alles falsch. Danke.