Der Grund, warum ich diese Frage gestellt habe, war, dass ich vergessen habe, wie man sie benutzt, da ich eine Weile glücklich in CSS gehackt habe. Die Leute haben nicht bemerkt, dass ich die Frage allgemein gehalten habe, da ich nicht über die Größe von Schriftarten per se gesprochen habe. Ich war mehr daran interessiert, wie man Stile für ein bestimmtes Blockelement auf der Seite definiert.
Wie Henrik Paul und andere betonten, ist em proportional zur im Element verwendeten Schriftgröße. Es ist üblich, Größen für Blockelemente in px zu definieren. Die Größenänderung von Schriftarten in Browsern bricht jedoch normalerweise dieses Design. Das Ändern der Schriftgröße erfolgt normalerweise mit den Tastenkombinationen Ctrl+ +oder Ctrl+ -. Eine gute Praxis ist es also, stattdessen Ems zu verwenden.
Verwenden Sie px, um die Breite zu definieren
Hier ist ein veranschaulichendes Beispiel. Angenommen, wir haben ein Div-Tag, das wir in ein stilvolles Datumsfeld verwandeln möchten. Möglicherweise haben wir HTML-Code, der folgendermaßen aussieht:
<div class="date-box">
<p class="month">July</p>
<p class="day">4</p>
</div>
Eine einfache Implementierung würde die Breite der date-box
Klasse in px definieren:
* { margin: 0; padding: 0; }
p.month { font-size: 10pt; }
p.day { font-size: 24pt; font-weight: bold; }
div.date-box {
background-color: #DD2222;
font-family: Arial, sans-serif;
color: white;
width: 50px;
}
Das Problem
Wenn wir jedoch den Text in unserem Browser vergrößern möchten, wird das Design beschädigt. Der Text blutet auch außerhalb des Rahmens , was fast dem entspricht, was mit dem Design von SO geschieht, wie Flodin hervorhebt . Dies liegt daran, dass die Box dieselbe Breite hat, an der sie verriegelt ist 50px
.
Verwenden Sie sie stattdessen
Eine intelligentere Methode besteht darin, stattdessen die Breite in ems zu definieren:
div.date-box {
background-color: #DD2222;
font-family: Arial, sans-serif;
color: white;
width: 2.5em;
}
* { margin: 0; padding: 0; font-size: 10pt; }
// Initial width of date-box = 10 pt x 2.5 em = 25 pt
// Will also work if you used px instead of pt
Auf diese Weise haben Sie ein fließendes Design auf dem Datumsfeld, dh das Feld wird zusammen mit dem Text proportional zur für das Datumsfeld definierten Schriftgröße vergrößert. In diesem Beispiel wird die Schriftgröße in *
10pt definiert und auf das 2,5-fache dieser Schriftgröße vergrößert. Wenn Sie also die Schriftgröße im Browser ändern, hat die Box die 2,5-fache Größe dieser Schriftgröße.