Linktipp gesucht: Browserberechnung von 1ex
Cheatah
- css
Hi,
bei einem Projekt haben wir Elementen eine Breite in ex gegeben, um sie bei Schriftgrößenveränderungen konsistent zu halten. Der Vorgang an sich funktionierte erwartungsgemäß gut; jedoch gab es in der effektiven Breite gravierende Unterschiede zwischen den Browsern, wenn in diesen die Schrift gleich groß ist. Ich muss dazu sagen, dass folgendes Basis-Regelwerk existierte:
html { font-size: 100.01%; } /* bekannte Umgehung diverser Browserbugs */
body { font-size: 0.85em; } /* bzw. andere Werte, jeweils in em */
body * { font-size: 1em; } /* alles schön vereinheitlichen :-) */
Dazu kam dann halt #foo { width: 20ex; } o.ä.
Laut W3C ist die Berechnung von ex ein bisschen wischi-waschi definiert:
"""The x-height of a font can be found in different ways. Some fonts contain reliable metrics for the x-height. If reliable font metrics are not available, UAs may determine the x-height from the height of a lowercase glyph. One possible heuristics is to look at how far the glyph for the lowercase "o" extends below the baseline, and subtract that value from the top of its bounding box. In the cases where it is impossible or impractical to determine the x-height, a value of 0.5em should be used."""
Für mich klingt das etwa nach "Du könntest es soundso versuchen, und wenn Dir das zu blöd ist, nimmst Du halt 'n halbes em." Ich würde gerne wissen, wie die Browser _tatsächlich_ die Größe berechnen, also bei welchen Schriftarten sie welches Verfahren nutzen, wie genau die Berechnung ist, wo Rundungsfehler in welcher Art wirken usw., und natürlich was effektiv dabei raus kommt.
Hat dazu jemand einen Linktipp oder Erfahrungswerte? Meiner Recherche fehlten leider die richtigen Stichworte ...
Cheatah
Hi,
Ich würde gerne wissen, wie die Browser _tatsächlich_ die Größe berechnen, also bei welchen Schriftarten sie welches Verfahren nutzen, wie genau die Berechnung ist, wo Rundungsfehler in welcher Art wirken usw., und natürlich was effektiv dabei raus kommt.
Du kennst [link=/archiv/2006/3/t125836/#m811806@title=em/ex <-> px]?
Hat dazu jemand einen Linktipp oder Erfahrungswerte? Meiner Recherche fehlten leider die richtigen Stichworte ...
Ich habe genommen: px in em JavaScript Funktion
Gruß, Cybaer
Seufz:
Gruß, Cybaer
Hi,
Du kennst em/ex <-> px?
nein, aber ich habe auch nicht nach Testsuites gesucht :-) Vor allem sehe ich dort nur wenig über ex, dafür eine Annahme über das Browserverhalten bezüglich pt, die meiner Erfahrung leider widerspricht.
Nichtsdestotrotz kann ich den Code glaube ich verwenden, um darauf eine Testseite aufbauen zu lassen, aus der ich Schlussfolgerungen ziehen kann. Danke!
Cheatah
Hi,
nein, aber ich habe auch nicht nach Testsuites gesucht :-)
Ach so, dann hatte ich dich mißverstanden.
Was deine Frage nach genauerem Lesen angeht ;-):
Für mich klingt das etwa nach "Du könntest es soundso versuchen, und wenn Dir das zu blöd ist, nimmst Du halt 'n halbes em." Ich würde gerne wissen, wie die Browser _tatsächlich_ die Größe berechnen, also bei welchen Schriftarten sie welches Verfahren nutzen, wie genau die Berechnung ist, wo Rundungsfehler in welcher Art wirken usw., und natürlich was effektiv dabei raus kommt.
Hat dazu jemand einen Linktipp oder Erfahrungswerte? Meiner Recherche fehlten leider die richtigen Stichworte ...
Das "halbe em" ist wohl de facto Browserstandard (meine ich bei Eric Meyer gelesen zu haben). Allerdings, so die Begründung des Autors, nur, weil die heutigen Programme i.d.R. gar nicht die Möglichkeit haben, *wirklich* die korrekten Abmessungen einzelner Buchstaben zu ermitteln.
Sollte sich das in Zukunft (auf Betriebssystemebene) ändern (wovon der Autor ausging), so wäre zu erwarten, daß dann 1 ex auch nicht mehr automatisch 1/2 em wäre, sondern der reale Wert. Momentan aber: Nada.
Gruß, Cybaer