On 2012-04-25 20:01, Thomas 'PointedEars' Lahn <
Point...@web.de> wrote:
> Die CSS-Einheit `em' bezieht sich auf die Breite des Gevierts aus dem
> Letterndruck übertragen auf elektronische Schriften. Diese entspricht dort
> *ungefähr* der Breite des breitesten Buchstabens eines Schrift (der auf
> einer Letter Platz finden muss), i. d. R. des des grossen "M" (daher eben
> "em") [1, 2]. (Ungefähr AIUI, weil das gedruckte Zeichen nicht exakt an den
> Grenzen des Gevierts endet. CMIIW.)
Das ist eine umständliche und irreführende Vorstellung.
1. Umständlich: Ein Geviert (alter Ausdruck für Quadrat) ist per
definitionem gleich hoch wie breit. Die Breite des Gevierts ist also
gleich der Höhe und die Höhe wiederum ist/war im Bleisatz die
Kegelhöhe. Statt dem ganzen Absatz, den Du da oben geschrieben hats,
kann man sehr viel einfacher schreiben „1em ist die Kegelhöhe“.
2. Irreführend: „entspricht *ungefähr* der Breite des breitesten
Buchstabens ... i. d. R. des des grossen "M"“ impliziert, dass 1em
bei schmallaufenden Schriften kleiner sei als bei breitlaufenden.
Das ist aber nicht der Fall. Das sieht man am einfachsten, wenn man
zwei Schriften aus der gleichen Schriftfamilie vergleicht. Bei Arial
ist ein M 1706/2048 em breit, bei Arial Narrow hingegen nur
1399/2048 em. In beiden Schriftarten ist das M natürlich gleich hoch:
1466/2048 em. Das muss auch so sein, damit die Schriften
zusammenpassen, wenn man beide in der gleichen Schriftgröße setzt.
Bei z.B. 16pt ist so ein M in beiden Schriften 11.5pt hoch, aber in
der Arial Narrow schmaler (10.9pt) also in der Arial (13.3pt). Würde
sich ein em an Breite des M orientieren, wäre das M in beiden Fällen
gleich breit (16pt), aber in der Arial Narrow deutlich höher (16.8pt)
als in der Arial (13.7pt).
Elektronische Schriften haben natürlich keinen „Kegel“ und ein em
entspricht nicht notwendigerweise irgendeiner messbaren Eigenschaft der
Schrift: Bei den meisten Schriften ist es so gewählt, dass der vertikale
Abstand zwischen der Unterkante des (lateinischen) Kleinbuchstabens mit
der kleinsten Unterlänge und der Oberkante des Kleinbuchstabens mit der
größten Oberlänge etwas kleiner als ein em ist (klar - im Bleidruck
mussten die ja beide auf den Kegel passen). Aber über den gesamten Font
ist die Summe aus größter Oberlänge und kleinster Unterlänge meistens
deutlich über 1em und bei manchen Fonts trifft das schon bei "ganz
normalen" Buchstaben zu.
Zusammenfassend: 1em ist ein grobes Maß für die Höhe der Schrift, nicht
für die Breite. Technisch ist es einfach ein Skalierungsfaktor, den der
Font-Designer so wählen sollte, dass die Schrift bei gleicher em-Größe
etwa gleich groß wie andere Schriften erscheint.
> Die Einheit `ex' als "x-height", d. h. die Höhe des kleinen "x", eignet sich
> deshalb IMHO besser dafür, eine CSS-Länge (hier: Textbreite) anzugeben, die
> sich ungefähr nach der *Anzahl* der Zeichen in einer Zeile bemisst (das
> kleine "x" ist zumindest bei für Fliesstext geeigneten Schriftschnitten
> ungefähr so breit wie hoch).
Das erscheint auf den ersten Blick sinnvoll, da sich „ex“ als Einheit
auf eine echte Eigenschaft des Fonts bezieht und kein willkürlich
gewähltes Maß ist wie „em“.
Auf den zweiten Blick bin ich mir da nicht so sicher: Angenommen, ich
habe einen Font mit sehr kleinen Unter- und Oberlängen und einen mit
sehr großen. Dann sind wahrscheinlich bei nominell gleicher Größe beim
ersten die Kleinbuchstaben größer als beim zweiten, was nach Deiner
Methode zu einer längeren Zeilenlänge führen würde. Ich bezweifle aber,
dass das sinnvoll ist - das sieht dann wahrscheinlich sehr gedrängt aus,
während beim Font mit den großen Unter- und Oberlängen die Zeilen
deutlicher voneinander getrennt sind. Sinnvoll wäre es wahrscheinlich,
die Zeilenlängen vom Zeilenabstand abhängig zu machen, aber dafür gibt
es in CSS kein Maß - und umgekehrt den Zeilenabstand in Abhängigkeit von
ex anzugeben erscheint mir auch gefährlich, solange man keine Kontrolle
über den verwendeten Font hat.
hp
--
_ | Peter J. Holzer | Deprecating human carelessness and
|_|_) | Sysadmin WSR | ignorance has no successful track record.
| | |
h...@hjp.at |
__/ |
http://www.hjp.at/ | -- Bill Code on
as...@irtf.org