Wenn es darum geht, die Schriftgröße in CSS festzulegen, haben Sie viele Möglichkeiten. Sie können ein „Schlüsselwort“ verwenden, wie z. B.p { font-size: small; }oder einen numerischen Wert. Bei der Verwendung eines Wertes müssen Sie eine Maßeinheit deklarieren, die selbst vier Optionen hat. Was ist am besten? Das hängt natürlich davon ab. Schauen wir uns das mal an
Schlüsselwort
Gültige Optionen für die Festlegung der Schriftgröße in Schlüsselwörtern sind xx-small, x-small, small, medium, large, x-large und xx-large sowie die relativen Schlüsselwörter smaller und larger.
Überraschenderweise ist die Größeneinstellung nach Schlüsselworten über Browser und Plattformen hinweg ziemlich konsistent. Sehen Sie unten eine Testseite in Opera, Firefox, IE 6 und Safari

Beachten Sie, dass es, obwohl sie ziemlich nah beieinander liegen, Unterschiede bei Zeilenumbrüchen und der Gesamthöhe des Absatzes gibt.
Nur wenn eines der relativen Größen-Schlüsselwörter verwendet wird, greift der „Kaskadeneffekt“ und die Schriftgröße des übergeordneten Elements beeinflusst das Kind. Wenn beispielsweise das übergeordnete Element auf medium und das untergeordnete Element auf large gesetzt war. Nur large würde verwendet, um das untergeordnete Element zu dimensionieren. Wenn jedoch das übergeordnete Element auf medium und das untergeordnete Element auf larger (beachten Sie: larger, nicht nur large) gesetzt war, würde das untergeordnete Element „hochskaliert“ werden, um größer als die Schriftgröße des übergeordneten Elements zu sein. Ändere das Elternteil, ändere das Kind, daher eine „Kaskade“.
Schlüsselwörter sind eine absolut gute Methode, um Schriftarten im Web zu skalieren. Eine der beliebtesten Techniken ist es, eine Schlüsselwort-Schriftgröße für das Body-Element festzulegen und dann überall sonst auf der Seite relative Schriftgrößen zu verwenden. Dies gibt die Möglichkeit, die Schriftgröße auf der Seite wirklich einfach zu vergrößern oder zu verkleinern (z. B. mit JavaScript) und die gesamte Seite konsistent nach oben und unten zu bewegen.
Schlüsselwörter bieten jedoch keine sehr feingranulare Kontrolle über Ihre Typografie, da die Auswahl recht begrenzt ist.
px
Wenn Sie eine feingranulare Kontrolle benötigen, ist die Skalierung von Schriftarten in Pixelwerten (px) eine ausgezeichnete Wahl (sie ist meine Lieblingsmethode). Auf einem Computerbildschirm ist es nicht genauer als ein einzelnes Pixel. Wenn Sie Schriftarten in Pixeln skalieren, weisen Sie Browser wörtlich an, die Buchstaben mit genau dieser Pixelhöhe darzustellen.
![]()
Windows, Mac, aliased, anti-aliased, cross-browsers, egal, eine Schriftart auf 14px eingestellt ist 14px hoch. Aber das heißt nicht, dass es trotzdem noch Variationen geben wird. In einem schnellen Test unten waren die Ergebnisse etwas konsistenter als bei Schlüsselwörtern, aber nicht identisch.
![]()
Aufgrund der Beschaffenheit von Pixelwerten kaskadieren sie nicht. Wenn ein übergeordnetes Element eine Pixelgröße von 18px hat und das untergeordnete Element 16px ist, ist das untergeordnete Element 16px. Allerdings können Schriftgrößeneinstellungen in Kombination verwendet werden. Wenn beispielsweise das übergeordnete Element auf 16px und das untergeordnete Element auf „larger“ gesetzt war, wäre das untergeordnete Element tatsächlich größer als das übergeordnete Element. Ein schneller Test zeigte mir das.

„Larger“ erhöhte die 16px des übergeordneten Elements auf 20px, eine Steigerung von 25 %.
Pixel hatten in der Vergangenheit einen schlechten Ruf wegen Bedenken hinsichtlich Zugänglichkeit und Benutzerfreundlichkeit. In IE 6 und darunter können in Pixeln eingestellte Schriftgrößen nicht vom Benutzer geändert werden. Das bedeutet, dass wir schicken jungen gesunden Designer Text in 12px einstellen und ihn auf dem Bildschirm gut lesen können, aber wenn Leute, die schon etwas älter sind, die Größe ändern wollen, um ihn lesen zu können, können sie es nicht. Das ist wirklich IE 6s Schuld, nicht unsere, aber wir haben, was wir haben, und wir müssen damit umgehen.
Die Einstellung der Schriftgröße in Pixeln ist die genaueste (und meiner Meinung nach befriedigendste) Methode, aber berücksichtigen Sie die Anzahl der Besucher, die immer noch IE 6 auf Ihrer Website nutzen, und deren Barrierefreiheitsbedürfnisse. Wir sind ganz am Rande dessen, dass wir uns darum nicht mehr kümmern müssen.
em
Em-Werte sind wahrscheinlich die schwierigsten Werte, um den Verstand zu wickeln, wahrscheinlich weil das Konzept selbst abstrakt und willkürlich ist. Hier ist die Sache: 1em entspricht der aktuellen Schriftgröße des betreffenden Elements. Wenn Sie die Schriftgröße nirgendwo auf der Seite festgelegt haben, dann ist es der Browser-Standard, der wahrscheinlich 16px ist. Also standardmäßig 1em = 16px. Wenn Sie eine Schriftgröße von 20px für Ihren Body festlegen würden, dann wäre 1em = 20px.

Historisch gesehen glaube ich, dass der „em“-Wert auf der Breite des Großbuchstabens M basiert, aber zitieren Sie mich nicht.
Die Dinge werden mit ems etwas komplizierter, wenn wir eine komplexere Schriftgrößeneinstellung vornehmen. Sagen wir, wir brauchen eine Überschrift mit einer größeren Schriftgröße, also setzen wirh1 { font-size: 2em; }Diese „2“ ist im Wesentlichen ein Multiplikator des aktuellen em-Wertes. Wenn der aktuelle em-Wert also 16px beträgt, wird dieses Überschriften-Tag 32px betragen. Diese Berechnung ist sauber, aber Sie können sich vorstellen, dass sie oft nicht sauber ist und Rundungen stattfinden müssen.
Die beliebteste Methode, mit em-Werten zu arbeiten, ist die Einstellung der Schriftgröße für den Body auf 62,5 %. Da die Standard-Browser-Schriftgröße 16px beträgt, ergibt dies 10px (ohne sie auf 10px festzulegen, was nicht kaskadiert). Die Verwendung von 10 als Multiplikator ist viel einfacher als die Verwendung von 16. Auf diese Weise benötigen Sie eine Schriftgröße von 18px? Verwenden Sie font-size: 1.8em.
Warum also das ganze em-Zeug, wenn es nur eine Abstraktion von Pixelwerten ist?
- Sie sind in IE 6 skalierbar
- Die Beziehung zu anderen Größen (elastische Breiten-Websites)
- Ems kaskadieren wie verdammt noch mal
Die erste ist die wichtigste. Wenn Sie im Grunde Pixel verwenden möchten, aber die Barrierefreiheitsprobleme nicht mögen, könnten Ems die Lösung für Sie sein.
Ems sind nicht nur für Schriftarten, es ist eine Maßeinheit, die Sie für jede andere Länge (Höhe, Breite usw.) verwenden können. Elastische Breiten-Websites verwenden für alles em-Werte, was die Website im Wesentlichen „zoombar“ macht, was bedeutet, dass beim Erhöhen der Schriftgröße alles bis zur Breite der Website hochskaliert wird. Ems haben auf diese Weise eine direkte Beziehung zueinander. Wenn Sie eine Box haben, die 10em hoch ist, und eine Schrift darin, die 1em groß ist, nimmt sie genau 1/10 der Höhe dieser Box ein. Dieses exakte proportionale Verhältnis macht em-Werte zu einer leistungsstarken Webdesign-Technik.
Es gibt eine potenzielle Bedenken bei ems, in Bezug auf #3. Sie kaskadieren tatsächlich. Jeder em-Wert bezieht sich auf den Wert seines übergeordneten Elements. Wenn Sie ems als direkte Ersetzung für Pixelwerte verwenden, kann dies zu Problemen führen. Sie könnten beispielsweise sowohl Ihre „p“ (Absatz) als auch Ihre „li“ (Listenpunkt) Schriftgrößen auf 1,2em einstellen. Sieht heute gut aus, aber morgen werden Inhalte auf der Website veröffentlicht, die einen Absatz innerhalb eines Listenpunkts haben. Diese beiden Werte werden kaskadieren (1,2 x 1,2) und dieser Listenpunkt wird in der Schriftgröße größer sein als alle anderen. Kein Ausweg, außer das Tag zu entfernen.
%
Prozente sind ziemlich offensichtlich, wie sie funktionieren. Das heißt, sie funktionieren genau so, wie Sie es erwarten würden. Wenn ein übergeordnetes Element die Schriftgröße von 20px hat und das untergeordnete Element 50% hat, ergibt sich 10px. Genau wie bei ems ist die Beschaffenheit der Prozent-Skalierung, dass sie relativ ist. Sie kaskadiert auch auf die gleiche Weise, so dass das Problem, das oben mit dem Listenpunkt und dem Absatz beschrieben wurde, auch hier zutrifft.
Eine beliebte Technik zur Verwendung von Prozentwerten für Schriftgrößen ist es, eine vernünftige Schriftgröße für den Body festzulegen (wie z. B. „small“) und dann für alles andere Prozente zu verwenden. Dies ermöglicht es Ihnen, dieses Schlüsselwort an einer einzigen Stelle auszutauschen, um die Schriftgrößen auf der gesamten Seite zu skalieren, was Dinge wie eine Schriftgrößenänderungsfunktion erheblich erleichtert.

pt
Die letzte Maßeinheit, in der es möglich ist, Schriftgrößen zu deklarieren, sind Punktwerte (pt). Punktwerte sind nur für Print-CSS! Ein Punkt ist eine Maßeinheit, die für reale Typografie auf Papier verwendet wird. 72 Punkte = ein Zoll. Ein Zoll = ein realer Zoll wie auf einem Lineal. Kein Zoll auf einem Bildschirm, der rein willkürlich auf der Auflösung basiert.
So wie Pixel bei der Schriftgrößeneinstellung auf Monitoren absolut genau sind, sind Punktgrößen auf Papier absolut genau. Für die besten plattform- und browserübergreifenden Ergebnisse beim Drucken von Seiten richten Sie eine Druck-Stylesheet ein und skalieren alle Schriftarten mit Punktgrößen.
Zur guten Übersicht: Der Grund, warum wir keine Punktgrößen für die Bildschirmdarstellung verwenden (abgesehen davon, dass es absurd ist), ist, dass die plattform- und browserübergreifenden Ergebnisse drastisch unterschiedlich sind.

Ausgezeichneter Beitrag!
Ich benutze selbst einen Mac und wollte nur fragen, ob Sie mir einen Link zu dieser IE-Tester-App per E-Mail schicken könnten.
Hallo Andy,
Chris hat hier eine Seite dazu: https://css-tricks.de/ie-on-mac
Ich erkenne jetzt, dass es Parallelen im Kohärenzmodus gibt.
Vergessen Sie es...
Ich benutze das IE-Tester-Programm, ein sehr praktisches Werkzeug in der Tat.
Ich benutze das IE-Tester-Programm, ein sehr praktisches Werkzeug in der Tat. Ich benutze ein altes Laptop, das ich neben meinem Schreibtisch aufgestellt habe. Darauf ist Windows installiert und es läuft ein Programm für mehrere IE-Versionen: http://tredosoft.com/Multiple_IE . Dies ermöglicht es mir, IE 6 (und ältere Versionen) zu installieren, während IE 8 installiert ist.
Chris,
Toller informativer Artikel und einer, der ausgedruckt und in mein Handbuch eingeheftet wird.
Danke
Das sollte ich tun
Gute Lektüre, ich war überrascht, dass die Schlüsselwortwerte cross-browser ziemlich genau waren
Chris, toller Beitrag. Normalerweise benutze ich em, aber ich wurde ein paar Mal vom Kaskadeneffekt überrascht. Vielen Dank.
Wow! Wirklich nützlich. Vielen Dank. Ich habe andere Artikel gelesen, die versucht haben, dieses Thema zu erklären, und dies ist das erste Mal, dass ich wirklich ein gutes Verständnis dafür bekommen habe.
Vielen Dank,
Tolle Zusammenfassung! Mein Lieblingsteil
Ha! Ich auch! Ich habe tatsächlich laut gelacht. Das wird meine Antwort von nun an sein, wenn mich Leute fragen, warum ich EMs benutze.
Ausgezeichnete Diskussion über Schriftgrößenprobleme. Lesezeichenwürdig!!!
Ich habe eine Weile mit Ems zu kämpfen gehabt, aber nach dem Lesen dieses Beitrags werde ich vielleicht zu Prozentsätzen wechseln. Es gibt immer noch Kaskadeneffekte zu bedenken, aber zumindest kann ich die Zahlen so ermitteln, dass sie nicht so willkürlich sind, wie Ems immer erscheinen.
Ausgezeichnet, Chris. Jetzt verstehe ich, worauf sich ems als Referenzgröße beziehen. All diese Websites, die wollen, dass ich von px zu em wechsle, erklären nicht, wo die Basisgröße angegeben ist.
Guter Beitrag in der Tat….
Und ja, es stimmt: „Historisch gesehen glaube ich, dass der „em“-Wert auf der Breite des Großbuchstabens M basiert, aber zitieren Sie mich nicht.“
Gute Abdeckung. Ich mag Typografie und meiner Meinung nach benutze ich am häufigsten pt, weil sie genauer zu sein scheinen.
Vergessen Sie nicht ‚ex‘, das in CSS2 enthalten ist.
http://www.w3.org/TR/css3-values/#relative0
Die Einheit ‚ex‘ wird durch die x-Höhe der Schriftart definiert. Die x-Höhe wird so genannt, weil sie oft der Höhe des Kleinbuchstabens „x“ entspricht. Ein ‚ex‘ ist jedoch auch für Schriftarten definiert, die kein „x“ enthalten.
CSS3 hat auch einige neue Einheiten
gd das durch ‚layout-grid‘ definierte Gitter, das im CSS3 Textmodul [CSS3TEXT] beschrieben ist
rem die Schriftgröße des Root-Elements
vw die Breite des Viewports
vh die Höhe des Viewports
vm die Höhe oder Breite des Viewports, je nachdem, welche kleiner ist
ch Die Breite des „0“ (NULL, U+0030) Glyphen, der in der Schriftart für die zum Rendern verwendete Schriftgröße gefunden wird. Wenn der „0“-Glyph nicht in der Schriftart gefunden wird, kann die durchschnittliche Zeichenbreite verwendet werden.
Verwenden Sie http://pxtoem.com für automatische Konvertierungen
Ems cascade like a mo-fo: Hallo Chris, ich denke, wir haben den perfekten Titel für das Buch gefunden, das du gerade angekündigt hast!
Wirklich klare Erklärung der verschiedenen Techniken, übrigens – insbesondere die Erklärung zu em hat mir geholfen zu verstehen, warum ein Design vor einiger Zeit bei mir immer wieder kaputt ging. Danke wie immer für die ausgezeichnete Arbeit.
Das em-Beispiel am Ende ist nicht ganz richtig, Sie können eine neue Regel für Listenelemente innerhalb von Absätzen und so weiter definieren, um das Problem zu lösen.
@Chris
Tatsächlich gibt es ein paar Möglichkeiten, zum Beispiel, wenn Sie die Schriftgröße von Listen in ems eingestellt haben, haben verschachtelte Listen unterschiedliche Schriftgrößen (es sei denn, Sie stellen sie auf 1em). Die Lösung ist ganz einfach
ul ul, ol ol {
font-size: 1em;
}
Das Gleiche gilt für Ihr Beispiel
p li {
font-size: 1em;
}
Das ist die Schönheit von ems.
Übrigens, Sie haben hier ein Wort vergessen
Ich meinte natürlich
li pund nichtp li=PDas stimmt, Sie haben Recht. Aber ich stimme nicht zu, dass das die „Schönheit“ von ems ist =). Ich finde das mühsam. Was ist mit verschachtelten Listen, die 5 Ebenen tief sind? Das ist viel zusätzliches CSS, um sich wieder nach unten zu kämpfen, um gegen die Kaskade anzukämpfen.
Tatsächlich benötigen verschachtelte Listen, die fünf Ebenen tief sind, nicht mehr als
ul ul {
font-size: 1em;
}
da dies alle Listen innerhalb einer anderen Liste auswählt. Sie können sie so oft verschachteln, wie Sie möchten, ohne den Code ändern zu müssen.
Das ist die Schönheit von CSS =)
Snookerman, vielen Dank für diesen Kommentar. Ich habe nie erkannt, dass man Dinge auf diese Weise tun kann. Und ich habe dummerweise separate Klassen für alles verwendet! NICHT MEHR, dank Ihnen!
PS: Mit „nie“ meine ich, seit ich angefangen habe, CSS zu lernen, was vor 6 Monaten war.
Natürlich geht großer Dank auch an Chris, ich habe so viel von seinen Artikeln gelernt, und dieser Artikel ist keine Ausnahme.
Ja, Sie haben wieder Recht, ich bin mir nicht sicher, was ich gedacht habe. Es sei denn, die „Verschachtelung“ ist nicht nur gerade Listen, wie ein Absatz in einer Definitionsliste in einer unsortierten Liste in einem Div, diese Art von Sache. Aber wenn Sie diese Art von Sache tun, sind Sie wahrscheinlich gut informiert und können damit umgehen.
Ich denke, die Tatsache bleibt, dass es nicht ganz so intuitiv ist wie die Einstellung eines Pixelwerts, da Sie diese (potenziell unvorhergesehenen) Umstände berücksichtigen müssen.
Das stimmt, Ems können etwas knifflig sein. Je mehr Sie sie jedoch verwenden und verstehen, wie sie funktionieren, desto mehr werden Sie erstaunt sein, wie viel einfacher sie bestimmte Dinge machen. Zum Beispiel verwende ich die folgende Regel
p {
max-width: 30em;
}
Das bedeutet, dass ich immer die gleiche Anzahl von Zeichen pro Zeile haben werde, unabhängig von der Schriftgröße. Wenn ich Pixel verwenden würde, müsste ich die Breite des Absatzes jedes Mal neu berechnen und ändern, wenn ich die Schriftgröße ändere. Mein Design würde auch kaputtgehen, wenn jemand eine andere Textgröße verwenden würde. Die einzige Möglichkeit, dies zu vermeiden, ist die Verwendung von Ems.
Es sei denn, Sie möchten natürlich, dass dies in IE6 funktioniert, das „max-width“ nicht erkennt. . .
Ist das nicht bei allem so? Heheh.. Außerdem ist IE8 draußen, also denke ich, es ist an der Zeit, jegliche Unterstützung für IE6-Benutzer einzustellen. Wenn Sie möchten, gibt es Hacks, um denselben Effekt zu erzielen.
Ich höre, dass ein großer Teil der Leute immer noch IE 6 benutzt... leider. Kann ihn noch nicht aufgeben, Kumpel.
Ems ems ems!
Interessant…
Ich werde das später gründlich lesen müssen. Ein weiterer Eintrag auf meiner ständig wachsenden Liste von Dingen zu tun. Ah, nun ja.
Daniel, ich bin heute auf diese Website gestoßen: http://ineedtoreadthis.com/
Ich habe den Dienst noch nicht ausprobiert, daher kann ich nichts dazu sagen, aber er klingt nützlich für Sie.
Ich bin ein Fan von YUI Fonts (und Reset), „Die grundlegende YUI Fonts CSS-Datei bietet browserübergreifende typografische Normalisierung und Kontrolle.“
http://developer.yahoo.com/yui/fonts/
Alternativer IE6-Renderer für Firefox: https://addons.mozilla.org/en-US/firefox/addon/1419. Die meisten von Ihnen wissen wahrscheinlich schon davon..
Das Problem mit IE Tab für Firefox ist, dass es die Version von IE verwendet, die zufällig auf Ihrem Computer installiert ist (meiner Erfahrung nach unter Windows). Wenn Sie also 7 installiert haben, wird es nur als Version 7 gerendert. IETester bietet alle Versionen bis zur neuesten, die Sie installiert haben. IETester für IE6 wird bei wirklich fortgeschrittenen Layouts etwas seltsam, aber im Allgemeinen sind das nicht die Arten, die IE6-Unterstützung im Sinn haben.
Schöner Beitrag Chris!
Ich möchte meine persönlichen Erfahrungen mit em-basiertem Design teilen.
Ich habe ernsthaft angefangen, ems zu verwenden, als ich Emastic entworfen habe. Am Anfang ist es etwas schwierig, von px auf em umzusteigen, aber sobald man gelernt hat, wie man sie benutzt, wird alles organisierter.
Es geht nicht nur um die Größenänderung in IE6. Chrome 1 und Safari 3, es geht um organisierteres CSS. Stellen Sie sich auch die Macht vor, dass sich alles ändert, indem Sie einen zentralen Parameter ändern. Stellen Sie sich vor, ein Kunde sagt Ihnen: „Kann diese Seite ein bisschen größer oder kleiner sein?“ und Sie sagen: „Ja, einen Moment.“ Sie gehen zum Body (Textgröße) und von 1em schreiben Sie 1.1em und die gesamte Website, einschließlich der Bilder, wird größer. Versuchen Sie, Ihre nächste Website mit Ems zu erstellen, Sie werden sie lieben lernen :)
Hallo,
Ein paar Dinge hinzuzufügen oder zu korrigieren.
Die Größe von ex
Paul Hayes hat sie richtig definiert, aber ich möchte darauf hinweisen, dass nicht alle Browser in der Lage sind, die ex-Größe tatsächlich zu berechnen. Einige Browser verwenden einfach eine willkürliche Regel von 2ex = 1em.
em, % und Kaskade
Wenn sie für Schriftgrößen verwendet werden, sind ems und Prozente im Grunde gleich. Sie können die eine oder die andere verwenden, je nachdem, ob Sie Prozente oder Dezimalbrüche bevorzugen.
Eine Sache, die man bei der Verwendung von relativen Einheiten wie % und em beachten sollte: Wenden Sie sie nicht auf generische HTML-Elemente an (außer html oder body). Wenden Sie sie auf Container oder bestimmte Elemente innerhalb eines Containers an (wenn Sie wissen, was der Inhalt sein wird), aber hüten Sie sich davor, sie zu früh in der Struktur anzuwenden.
Oh, und definieren Sie eine Standard-Schriftgröße für Ihren Body, die der Größe entspricht, die Sie für den Body-Text benötigen. Wenn die meisten Texte in Ihrem Layout 12px sind, definieren Sie font-size:75% oder font-size:.75em für den Body. Dann müssen Sie möglicherweise die Größe einiger Texte reduzieren (font-size:83%, font-size:.92em...) oder Titel größer machen. Aber wenn Sie eine „bequeme“ Schriftgröße von 10px für den Body festlegen, wenn Sie eigentlich Text benötigen, der zwischen 11px und 18px liegt, wird es problematisch, wie das von Ihnen vorgeschlagene Kaskadenproblem zeigt.
Punkte sind für den Druck? Nein.
Punkte sind nicht ausschließlich für den Druck. Theoretisch sind Punkte für die Definition einer absoluten Maßeinheit gedacht. Pixel sind nicht absolut, da je nach Bildschirm und gewählter Definition (nicht Auflösung) die Auflösung (Pixel pro Zoll) von viel (150 dpi) oder sehr wenig (75 dpi) reichen kann. Das bedeutet, Ihre Pixel können eine Größe oder vielleicht die halbe Größe haben. Das bedeutet, dass Text, den Sie entworfen haben, um auf Ihrem Bildschirm perfekt lesbar zu sein, auf dem Bildschirm Ihres Kunden zu groß erscheinen mag („machen Sie den Text bitte kleiner, okay?“) oder zu klein, um auf dem Bildschirm Ihres Nachbarn lesbar zu sein („Hey, die Website, von der Sie mir neulich erzählt haben? Die, an der Sie gearbeitet haben… nun, ich konnte den Text nicht sehr gut lesen, er ist so klein.“).
Punkte sind eine Lösung für dieses Problem. Aber Browser und Betriebssysteme müssen diese verwalten. Grundsätzlich bedeutet dies
Browser müssen die Anzeigegröße in Pixeln mit dem angegebenen Wert (sagen wir 10pt) und der echten Auflösung des Bildschirms berechnen;
Betriebssysteme müssen die echte aktuelle Auflösung und nicht einen Standardwert mitteilen.
Ich bin mir nicht sicher, wie die aktuelle Situation für diese beiden Kriterien in heutigen Browsern und Betriebssystemen ist.
Ach ja, Zentimeter, Millimeter, Zoll oder Pica sind dasselbe.
Ich habe festgestellt, dass einige Browser je nach Verwendung von em oder % unterschiedlich skalieren (zumindest als Basis), z. B. würde bei einem davon die Schriftgröße bei jeder Stufe, die sie über die Textgrößenoption erhöht wird, viel stärker ansteigen. Es könnte sein, dass dies nur IE war, ich erinnere mich nicht genau.
Es ist nur für IE. Es ist ein IE 5-7 Bug, hier dokumentiert. Die Lösung ist, nur eine font-size Deklaration in % für das html- oder body-Element zu verwenden. Ich schreibe dazu gerne
html {font-size:100%;}und verwende dann EMs nach Belieben für body und andere Elemente. Man könnte aber auch nur Prozentangaben verwenden oder
body {font-size: 75%;}zum Beispiel und dann EMs verwenden.
Obwohl dieser Bug in IE8 behoben wurde, ist dies ein guter Grund, Prozentangaben gegenüber EMs zu bevorzugen (obwohl ich persönlich eher EMs als Prozentangaben verwende).
Eigentlich ist dies ein IE 5-7 Bug. Verwenden Sie eine font-size:100% für das Wurzel-html-Element und er ist weg.
Ich wusste nicht, dass Punkte im Web so funktionieren sollen. Es ist definitiv eine kluge Idee. Aber klar ist es nicht zuverlässig. Hoffentlich wird es das eines Tages, da die Variationen bei Bildschirmauflösungen und Pixelgrößen immer größer werden.
Toller Artikel, Chris. Danke fürs Posten.
Ich weiß, dass px die Schriftgröße exakt festlegt, auch wenn der Benutzer die Standardschriftgröße seines Browsers oder die Schriftgröße seines Betriebssystems ändert (in den Windows-Anzeigeeigenschaften kann man sie auf Normal, Groß oder Extra Groß einstellen). Gibt es Unterschiede zwischen Schlüsselwörtern, % oder em in Bezug auf Benutzer, die ihre Basisschriftgröße erhöht (oder verringert) haben?
Sehr gut erklärt.
@3drockz
Guter Beitrag, er hat viele meiner Probleme mit em-Größen erklärt. Vielen Dank! =D
Ich benutze einfach px. Das Einrichten von Abhängigkeiten der Schriftgröße kann einen viel leichter in Schwierigkeiten bringen, als es hilft.
Toller Artikel! Wirklich informativ. Ich habe nie ganz verstanden, wie em funktioniert, aber Sie haben es hier sehr klar erklärt. (Nur aus Neugier, was bedeutet em eigentlich/wofür steht es?)
Ich persönlich ziehe es vor, Pixel für Schriftgröße zu verwenden – es liefert die genauesten und konsistentesten Ergebnisse über alle Browser hinweg. Ich kann mit der Größenänderung, die in IE6 nicht funktioniert, umgehen.
Nachdem ich diesen Teil gelesen habe
Ich nehme an, es steht für den Buchstaben „M“, als würde man ihn aussprechen. Ich bin mir aber nicht sicher.
das ist ein toller Artikel…… Vielen Dank Chris nochmals für einen schönen Artikel….ich persönlich verwende am liebsten „px“…und ich freue mich schon auf weitere Artikel
Großartiger Artikel,
gute Arbeit. Das habe ich schon bei w3schools gesehen und http://www.stoimen.com/blog/2009/03/04/dom-element-size-in-px-pt-em-or-percentage/ Hier wird es im Detail beschrieben. Danke nochmals.
Vielen Dank Chris, das hat dieses böse Thema EM vs. Pixel, das mich eine Weile geplagt hat, wirklich geklärt.
Ein weiteres praktisches Werkzeug für Pixelgrößen ist emcalc. Ich benutze es ständig, ohne es bin ich verloren.
Ich habe eine Nachschlagetabelle für px zu em und em zu em Berechnungen erstellt, die ich EmChart nenne.
Wenn ich die 62,5%-Regel nicht verwende, schaue ich tatsächlich in Ihre EmChart-Tabelle. Vielen Dank, dass Sie sie überhaupt erstellt haben!
Weiter so, Kumpel! Ich bevorzuge auch PX.
Erstellen Sie Ihre Screenshots oder verwenden Sie IE Tester unter Mac OS? (emulieren Sie Windows oder nicht?)
Mit freundlichen Grüßen,
Gio
„Hier ist die Sache: 1em entspricht der aktuellen Schriftgröße des betreffenden Elements. Wenn Sie nirgendwo auf der Seite eine Schriftgröße festgelegt haben, wäre es die Standardeinstellung des Browsers, die wahrscheinlich 16px beträgt. Standardmäßig also 1em = 16px. Wenn Sie body eine Schriftgröße von 20px zuweisen, dann ist 1em = 20px.“
1em entspricht der Schriftgröße, die Sie in Ihren Browsereinstellungen festgelegt haben. Ihre Aussage ist also größtenteils ungenau.
Standardmäßig ja, aber wenn Sie die Schriftgröße auf Ihrem Body auf eine andere Pixelgröße ändern, ändert sich der Wert von 1em. Probieren Sie es zu Hause aus!
Hallo, toller Artikel! Jetzt verstehe ich endlich, was em bedeutet. Danke.
Sehr nützlicher Beitrag
Ich benutze „px“ für alles…
Ich werde mit „em“ und % verwirrt.
Ich benutze niemals „pt“
Brillanter Artikel!
Dies hat mir ein gutes Verständnis für Webtypografie und die reibungslose Nutzung der verschiedenen Medien vermittelt. Ich fand es sehr einfach, die Logik von em zu verstehen. Ich werde diese bei der nächsten Layout-Gestaltung berücksichtigen.
Danke für den tollen Artikel, Mann! Sehr nützlich.
Toller Artikel. Danke.
Exzellenter Artikel. Wie bei allem gibt es keine perfekte Lösung. Ich neige dazu, ems zu verwenden, weil ich die zusätzliche Flexibilität mag, die sie bieten, aber ich stoße oft auf ärgerliche Probleme mit den kaskadierenden Größen. Wie in der obigen Diskussion erwähnt, ist dies sehr gut der Fall, wenn Sie verschiedene Arten von Elementen ineinander verschachtelt haben, wo einfaches CSS das Problem nicht behebt (also das li innerhalb eines p innerhalb eines div-Typs der Fall ist).
Der Link zum Em-Rechner in den Kommentaren ist unschätzbar wertvoll, ich bin nie zuvor darauf gestoßen!
Ich habe Ihren Artikel ins Russische übersetzt
Ich hoffe, es macht Ihnen nichts aus :)
Wie wäre es mit einem Link zum Original? Ich bin kein Urheberrechts-Nazi, aber ich glaube an Anerkennung, wo sie gebührt wird. Ich werde den Link zu Ihrer Website vorerst entfernen.
Ok, ich habe am Ende des Artikels einen Link zu Ihrer Website eingefügt :)
Wie wäre es mit einem Link zur Übersetzung?
Vielen Dank für all die Erklärungen.
Sie haben Recht, dass ein em die Breite eines „M“ ist, daher das Wort „em“. Es ist einfach ein typografischer Begriff für die maximale Breite eines beliebigen Buchstabens in einer bestimmten Schriftart, die die Breite von „M“ sein wird.
Ich habe Argumente pro/con zu allen Messungen gelesen, habe mich aber entschieden, dass ems für mich sind. Ich verstehe sie und benutze sie für alle Messungen auf meinen Websites. Mit anderen Worten, ich mische die Methoden nicht und ich denke, hier haben viele Leute Probleme.
Was kaskadierende Probleme angeht, beginne ich jede Regel, die eine em-Messung enthält, mit „font-size: 1em;“ – das legt die Größe fest und löst alle kaskadierenden Probleme.
Sie können ems auch verwenden, um die Größe von Grafiken festzulegen, damit sie mit der Textzoomstufe mitzoomen – ich nenne das „Zoom-Kooperativ“. Hier ist ein Beispiel: http://sperling.com/examples/zoom/
Alles in allem, wenn man sich das Konzept von ems zu eigen macht, denke ich, dass es einem über die Jahre gute Dienste leisten wird und weniger Probleme bereiten wird als andere Messungen.
Viele Grüße,
tedd
Nun ja. 16px ist 16px. Was ich nicht denke, dass Sie erkennen, ist, dass 16px zwar „mittel“ und leicht lesbar auf *Ihrem* Computer ist, dies aber nicht universell gilt. Auf meinem IBM-Laptop zum Beispiel ist 16px deutlich kleiner als „mittel“. Deshalb denke ich, es ist besser anzunehmen, dass Ihre Besucher 100 % lesen können – und jede andere Annahme ist reine Spekulation.
Danke Chris für diesen Beitrag. Jetzt werde ich px-Schrift in einigen Teilen verwenden
Die Verwendung von px oder em ist schlecht. Die Zeichengröße hängt von der DPI des verwendeten Displays ab. Wenn Sie 1em = 10 px haben, ist die Zeichenhöhe 10 pt auf einem Display mit 72 dpi und 5,45 pt auf einem Bildschirm mit 132 dpi. Das Ergebnis ist, dass die Texte auf keiner Hardware lesbar sind.
Ich denke, Windows ist besser für Webdesign, aber wir haben alle unsere Favoriten. Danke für diese Infos, sehr nützlich, danke :)
Tolle Beispiele, danke. Es ist immer harte Arbeit, Kunden die Verwendung von em und so zu erklären.
Bitte verwenden Sie keine px, um Schriftgrößen festzulegen. Das ist für Leser sehr frustrierend, da es von Bildschirm zu Bildschirm variiert, abhängig von ihrer Auflösung. Wenn sie einen Bildschirm mit hoher DPI haben, sind Ihre Schriftarten zu klein zum Lesen, was sie zwingt, eine Mindestschriftgröße festzulegen (was Ihr Layout zerstört) oder zu zoomen (was Ihr Layout zerstört). Verwenden Sie Größen, die von Bildschirm zu Bildschirm gleich bleiben.
Was ist dann Ihre ideale Methode? Pt ist die einzige Methode, die angeblich dieses Problem löst, aber in der Praxis versagt.
Einige Geräte gehen ihren eigenen Weg, wie das iPhone, das Größen künstlich erhöht, um die Lesbarkeit zu verbessern.
Sind alle Standard-Schriftgrößen von Browsern 16px?
Tolles Tutorial. Endlich verstehe ich dieses **Sizing** in CSS.
via E-Mail von Ken Hartley
Ein „em“ ist eine typografische Maßeinheit, die bis in die Zeit des Letterpress zurückreicht. Sie bezieht sich auf die Höhe des Metall- oder Holzstücks, auf dem jeder Buchstabe einer bestimmten Schriftart montiert ist (hier verwende ich Schriftart in ihrer wahren Bedeutung, nämlich einer Größe einer Schriftart). Typischerweise war das Großbuchstaben M ein quadratisches Stück, und daher wurde das Maß als „em“ bekannt. Eine weitere typografische Maßeinheit ist das „en“, das die Hälfte eines em ist.
Die x-Höhe bezieht sich auf die Höhe eines Kleinbuchstabens, bezieht sich aber korrekter auf die Höhe der Schriftzeichen, die keine Ober- oder Unterlängen haben (d. h. b, d, g, p usw.). Die Höhe wird von der Grundlinie bis zur Oberseite des höchsten Buchstabens gemessen. Das bedeutet, dass in einigen Schriftarten (Garamond fällt mir ein) die x-Höhe höher ist als das kleine „x“, wegen der Höhe der runden Buchstaben (a, c, m usw.).
Nur wenige Designer haben heute Blei-Typografie verwendet oder sogar die Geschichte und Ursprünge der von ihnen verwendeten Schriften studiert. Viele würden argumentieren, dass es wenig Unterschied macht. Ich denke, wir hätten weniger unleserliche Seiten.
body{font-size:10px;}
.child_percentage{ font-size:1em;border:1px solid #ccc;padding:100%;margin:100% } — laut Berechnung ist 1em == 10px == 100%. Wenn wir es auf Padding oder Margin anwenden, funktioniert es nicht wie erwartet
.child_em{ font-size:1em;border:1px solid #ccc;padding:1em;margin:1em; } —-font-size Wert wird auf Padding und Margin übertragen. es funktioniert perfekt
<div>parent</div>
<div class=”child_em”>child</div>
<div class=”child_percentage”>child</div>
Werden Padding und Margin nicht in Bezug auf Prozent von der Schriftgröße des übergeordneten Elements berechnet?
Ich hasse es, einen so alten Artikel zu kommentieren, aber Sie haben die für mich beste Version weggelassen – „Multiplikatoren“.
Statt „1.3em“ – nur „1.3“.
Es scheint ein Problem zu geben, dass sich line-height: 1.3em kaskadiert und das zu einem festen Pixelwert relativ zur aktuellen Schriftgröße geschieht.
Wenn Sie also „1.3em“ verwenden und ein Span oder etwas anderes die Schriftgröße erhöht, wird die Zeilenhöhe nicht erhöht. Wenn Sie jedoch nur einen Multiplikator „1.3“ verwenden, wird er für den „internen“ Span erhöht/neu berechnet.
Kevin
Hallo,
Empfehlen Sie die Verwendung von font-size:62.5%, damit 1em die Größe von 10px hat? Was halten Sie davon? Empfehlen Sie es?
Gott sei Dank gibt es notepad++, wo man reguläre Ausdrücke verwenden und alles ersetzen kann, was den Kriterien entspricht. Probieren Sie es aus, es wird alles vereinfachen. Kein manuelles Ersetzen jedes Elements im Code nötig.
Chris, zuerst einmal liebe ich Ihre Website! So viele wertvolle Hinweise.
Ich fange gerade mit html5 und css3 an. Könnten Sie mir bitte erklären, was Sie meinten, als Sie sagten, dass die Schrift nicht kaskadiert? („ohne sie auf 10px festzulegen, was nicht kaskadiert“)
Meinen Sie damit die kaskadierende Ausführungsreihenfolge?
Wie üblich, toller Beitrag!
Wenn es jemanden interessiert, habe ich einen Rechner zur Umrechnung von Pixel in em-Einheiten erstellt…
http://pixel-to-em-calculator.percovka.eu/