Benutzer:Rolf b/Maßeinheiten

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Diese Umrechnungsfaktoren sind von der CSS Spezifikation festgelegt und hängen nicht vom Ausgabemedium ab. Der Versuch, den festen Faktor 96 zwischen Pixel und Zoll an die reale Auflösung des Ausgabemediums anzupassen, ist bislang daran gescheitert, dass viele Webseiten zu einer Zeit konzipiert wurden, wo Monitore tatsächlich diese Auflösung besaßen, und deren Layout bei einer Änderung dieses Faktors zerstört würde[1].

Will man CSS Maßangaben auf ein reales Ausgabemedium abbilden, müssen die CSS Maße auf die Auflösung des Ausgabemediums abgebildet werden - die CSS Spezifikation spricht hier von einer Verankerung.

Eine Möglichkeit der Verankerung ist, die pysischen Längenmaße an den Abmessungen des Ausgabemediums zu orientieren, so dass ein Element der Größe 1cm auch 1cm groß dargestellt wird. Dies ist aber nur sinnvoll, wenn das Ausgabemedium ein Druckstück mit exakt bekannter Größe ist, das aus Lesedistanz betrachtet wird. Und es setzt voraus, dass das Ausgabemedium so hoch auflöst, dass erforderliche Rundungen beim Umrechnen von Maßangaben auf Gerätepixel nicht sichtbar werden. Bei niedrig auflösenden Geräten wie Bildschirmen, bei denen der Browser mitunter nicht einmal weiß, wie groß ein Pixel tatsächlich ist, bildet man das CSS Pixel in einem ganzzahligen Verhältnis auf Gerätepixel ab, um der Größe des Referenzpixels, dessen Kantenlänge 1/96in beträgt, möglichst nahe zu kommen. Der Browser ist dabei auf das Betriebssystem angewiesen, um zu erfahren, wieviele Gerätepixel einem Referenzpixel entsprechen.

Welches Verankerungsverfahren der Browser wählt, wissen Sie nicht. Sie können das Verhältnis vom Gerätepixel zum CSS-Referenzpixel in JavaScript mit der Eigenschaft devicePixelRatio des window-Objekts abfragen, oder Sie können in CSS eine @media-Query auf das Merkmal resolution vornehmen. Es gibt aber keine Garantie, dass der Browser über die Monitorauflösung korrekt informiert ist. Und bei einem Beamer sind Sie auch gar nicht daran interessiert, dass 1cm als 1cm auf der Leinwand erscheint, weil ein ganz anderer Betrachtungsabstand als bei einem Monitor vorliegt.

Deswegen ist es sinnvoll, für die Druckausgabe ein spezielles Druckstylesheet vorzusehen, in dem absolute Längenangaben verwendet werden. Sie können dem Browser mit einem media-Attribut im <link>-Element mitteilen, für welches Medium ein Stylesheet gedacht ist. Für die Ausgabe auf den Medientyp screen sollten Sie statt dessen Einheiten verwenden, die sich entweder auf die Größe des Viewports beziehen (z.B. vw) oder auf die eingestellte Schriftartgröße (z.B. em).
  1. CSSWG: Real Physical Lengths
    Question: A '1in' length usually isn't actually 1 inch. Can we get physical units that are the correct size, so we can create rulers/etc on webpages that actually work?
    Answer: No, currently not.