Kalle_B: Anzeigegröße in em errechnen

Hallöle,

abhängig von der Displaybreite in Pixel lade ich verschiedene CSS- Dateien, die u.a. bestimmen, ob die Anzeige ein- oder mehrspaltig erfolgt. Wenn Javascript ausgeschaltet ist, gibt es eine Default- CSS.

Für die Darstellung sind aber nicht nur die Pixel ausschlaggebend, sondern in Kombination mit der im Browser eingestellten Schriftgröße.

Ich möchte wissen, wie breit die Anzeige in em ist.

Wie geht das?

Lieben Gruß, Kalle

  1. hi,

    Ich möchte wissen, wie breit die Anzeige in em ist.

    Wie geht das?

    Erzeuge dir ein Element, dem du eine Breite in em verpasst, und lese mittels offsetWidth die Breite in Pixeln aus. (margin/padding, border, ... vermeiden.)

    In den meisten Browsern musst du es erst ins Dokument einhängen, bevor du die Breite auslesen kannst; absolute Positionierung ausserhalb des sichtbaren Bereiches empfiehlt sich also.

    Und ich würde nicht 1em nehmen, sondern z.B. eher 100em - und dann entsprechend Dividieren, dann dürfte das Ergebnis genauer sein.

    Dass das nur eine "Momentaufnahme" darstellt, ist klar.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi,

      Und ich würde nicht 1em nehmen, sondern z.B. eher 100em - und dann entsprechend Dividieren, dann dürfte das Ergebnis genauer sein.

      Das klappt prima, danke.

      document.writeln( "<div id=messlatte style='margin-left:-100em; width:100em; margin-top:-100em; height:100em'>x</div>" );
      var display_em = document.getElementById('messlatte').offsetWidth /100;
      alert ( '1em = [' +display_em +'] Pixel' );

      Kalle