Sollte ich beim Festlegen der Schriftgröße in CSS einen Prozentwert ( %
) oder verwenden em
? Können Sie den Vorteil erklären?
Sollte ich beim Festlegen der Schriftgröße in CSS einen Prozentwert ( %
) oder verwenden em
? Können Sie den Vorteil erklären?
Antworten:
Es gibt einen wirklich guten Artikel über Web-Typografie auf A List Apart .
Ihre Schlussfolgerung:
Es wurde gezeigt, dass die Größe von Text und Zeilenhöhe in ems mit einem auf dem Text angegebenen Prozentsatz (und einer optionalen Einschränkung für Safari 2) genauen, anpassbaren Text für alle heute gebräuchlichen Browser liefert. Dies ist eine Technik, die Sie in Ihre Kit-Tasche stecken und als Best Practice für die Größenänderung von Text in CSS verwenden können, die sowohl Designer als auch Leser zufriedenstellt.
line-heights
sind besser ohne Einheiten überhaupt geschrieben. Dies wird durch die Spezifikation erlaubt, und vermeidet ganz sicher wirklich ärgerlich Macken Browser , wenn es um em
-basierte Line-Höhen
1
. Das iPhone 4 hat beispielsweise eine physische Bildschirmbreite von 640 Pixel, wird jedoch als 320 "CSS" -Pixel angezeigt (DPR = 2). Die Website erscheint also nicht kleiner!
Von http://archivist.incutio.com/viewlist/css-discuss/1408
%: Einige Browser verarbeiten Prozent nicht für die Schriftgröße, sondern interpretieren 150% als 150px. (Einige NN4-Versionen zum Beispiel.) IE hat auch Probleme mit Prozent auf verschachtelten Elementen. Es scheint, dass der IE Prozent relativ zum Ansichtsfenster anstelle relativ zum übergeordneten Element verwendet. Ein weiteres Problem (obwohl gemäß den W3C-Spezifikationen korrekt): In Moz / Ns6 können Sie keinen Prozentsatz relativ zu Elementen ohne angegebene Höhe / Breite verwenden.
em: Manchmal verwenden Browser die falsche Referenzgröße, aber von den relativen Einheiten ist es die mit den geringsten Problemen. Es kann jedoch vorkommen, dass es manchmal als px interpretiert wird.
pt: Unterscheidet sich stark zwischen den Auflösungen und sollte nicht für die Anzeige verwendet werden. Es ist jedoch ziemlich sicher für den Druckgebrauch.
px: Die einzige zuverlässige absolute Einheit auf dem Bildschirm. Es könnte jedoch im Druck falsch interpretiert werden, da ein Punkt normalerweise aus mehreren Pixeln besteht und somit alles lächerlich klein wird.
Beide passen die Schriftgröße relativ zu ihrer Größe an. 1,5 em entspricht 150%. Der einzige Vorteil scheint die Lesbarkeit zu sein. Wählen Sie diejenige, mit der Sie sich am wohlsten fühlen.
Der wirkliche Unterschied wird deutlich, wenn Sie es nicht für Schriftgrößen verwenden. Das Einstellen eines padding
von 1em
ist nicht dasselbe wie 100%
. em
ist immer relativ zur Schriftgröße. Aber %
möglicherweise relativ zu Schriftgröße, Breite, Höhe und wahrscheinlich einigen anderen Dingen, die ich nicht kenne.
Angesichts der Tatsache, dass (fast?) Alle Browser jetzt die Größe der gesamten Seite und nicht nur des Texts ändern, haben frühere Probleme mit px
vs. %
vs.em
s in Bezug auf die Größenänderung zugänglicher Schriftarten eher umstritten.
Die Antwort ist also, dass es wahrscheinlich keine Rolle spielt. Verwenden Sie, was auch immer für Sie funktioniert.
%
ist schön, weil es eine relative Größenänderung ermöglicht.
px
ist schön, weil es ziemlich einfach ist, die Erwartungen bei der Verwendung zu verwalten.
em
kann nützlich sein, wenn es auch für Layoutelemente verwendet wird, da es eine proportionale Größe in Bezug auf die Textgröße ermöglichen kann.
em
, zum Beispiel. Abgesehen davon denke ich, dass Antworten auf SO zeitlos sein sollten - es ist schließlich eine Wissensbasis. Wikipedia der Programmierung :) Da Wikipedia aktualisiert wird, um Fakten widerzuspiegeln, sollte SO meiner bescheidenen Meinung nach auch antworten.
In Bezug auf den Unterschied zwischen den CSS-Einheiten %
und em
.
Soweit ich verstehen (zumindest theoretisch / konzeptionell, aber möglicherweise nicht , wie diese beiden Einheiten können in Browsern implementiert werden) diese beiden Einheiten äquivalent sind, dh , wenn Sie multiplizieren Ihr em
Wert mit 100
und ersetzen Sie dann em
mit%
ihm sollte das gleiche sein?
Wenn es tatsächlich einen echten Unterschied zwischen em und% gibt, kann jemand dies erklären (oder einen Link zu einer Erklärung bereitstellen)?
(Ich wollte meinen Kommentar dort hinzufügen, wo er hingehört, dh direkt unter der Antwort von eingerückt "Liam, answered Sep 25 '08 at 11:21"
meinen Kommentar dort da ich auch wissen möchte, warum seine Antwort abgelehnt wurde, aber ich konnte nicht herausfinden, wie ich meinen Kommentar dort platzieren sollte, und musste daher schreiben diese "thread global" Antwort)
Wie Galwegian erwähnt, ist px für die Web-Typografie am zuverlässigsten, da alles andere, was Sie auf der Seite tun, hauptsächlich in Bezug auf einen Computermonitor dargestellt wird. Das Problem bei absoluten Größen besteht darin, dass einige Browser (IE) Pixelwertelemente auf einer Webseite nicht skalieren. Wenn Sie also versuchen, hinein- / herauszuzoomen, wird alles außer diesen Elementen angepasst.
Ich weiß nicht, ob IE8 dies richtig handhabt, aber alle anderen Browser-Anbieter behandeln Pixel einwandfrei und es ist immer noch eine Minderheit, in der ein Benutzer Text vergrößern / verkleinern muss (dieses Textfeld auf SO ist möglicherweise die Ausnahme). Wenn Sie wirklich schmutzig werden möchten, können Sie jederzeit eine Javascript-Funktion hinzufügen, um Ihren Text zu vergrößern, und dem Benutzer eine Schaltfläche "klein" / "größer" anbieten.
Die Yahoo-Benutzeroberflächenbibliothek ( http://developer.yahoo.com/yui/ ) verfügt über eine Reihe von Basis-CSS-Klassen, mit denen die browserspezifischen Einstellungen "zurückgesetzt" werden, sodass die Basis für die Anzeige der Website für alle gleich ist (unterstützt). Browser.
Mit YUI soll man Prozentsätze verwenden.