Mischa: DIV-Länge mit Inhalt in pt ausgeben

Hallölchen!

ich suche nach einer Möglichkeit die Breite und Höhe eines div,
in dem Was geschrieben steht "Bla bla bla bla<br>Blablabla" in pt
auszulesen.

Je nach Schrifttyp bzw. Schriftgrösse verändern sich diese Wete auch.
Mit offsetWidth kann man zwar die Breite anzeigen lassen, jedoch in
px, und px ist u.A. von der Auflösung abhängig (relativer Wert).
Ich suche eine Möglichkeit die Absoluten Werte der Breite und Höhe
auszulesen (unabh. von dem Benutzersystem), damit ich das dann in mm
umrechnen kann.

Könnte mir bitte jemand an einem Sonntag helfen?  ;)

Danke vielmals im Voraus

Grüsse - Mischa

  1. Was ist denn an Pixeln relativ?

    1. Was ist denn an Pixeln relativ?

      .../#m32023

      1. 1em = 12pt = 16px = 100%

        Was ist denn an Pixeln relativ?

        .../#m32023

        1. Hallo,

          1em = 12pt = 16px = 100%

          wie kommst du auf dieses dünne Brett?

          Es gilt per definitionem: 1pt = 1/72"
          Und bei Schriftgrößen:    1em = 100%

          Das sind aber auch schon alle festen Beziehungen. Die Relation zwischen pt und px legt der Treiber des Anzeigegeräts (Bildschirm, Drucker) anhand der Geräteeigenschaften fest[1], und die Relation zwischen em und pt oder px ist vom Kontext des Elements abhängig, in dem diese Schriftgröße gelten soll.

          Was ist denn an Pixeln relativ?

          Die Betrachtungsweise. Ich betrachte sie als so ziemlich die einzige absolute Einheit bei der Anzeige am Bildschirm.

          Ciao,
           Martin

          [1] Unter Windows gilt für die Bildschirmanzeige häufig: 1" = 72pt = 120px

          --
          Fische, die bellen, beißen nicht.
          1. Hallo Martin,

            danke für die Antwort - also lag ich richtig in der Annahme, dass die px Werte "relativ sind".

            Könnest du vielleicht mir helfen und sagen,
            wie du das Problem lösen würdest:

            Ich verkaufe Schilder. Der Benutzer kann 2x Zeilen eingeben.
            Ausserdem kann er die Schriftart und Schriftgrösse angeben.

            Ich muss anhand dieser Werte ausrechnen wie gross die Höhe und Breite
            des Schildes ist und zwar in mm.
            Was ich bis jetzt mache ist, diese Text in ein Div element reinschreiben
            und die offsetWidth auslesen... Aber ist halt nicht genau...

            Hättest du vielleicht eine andere Idee?

            vielen Dank im Voraus

            Grüsse - Mischa

            1. Hättest du vielleicht eine andere Idee?

              Du kanst ja umrechnen, wieviel px 1cm ist. Ich hab hier eine Funktion, die das macht:

              function check_px(unit, faktor)  
              {  
                  if(!document.createElement) return;  
                  if(!unit) unit = 'em';  
                  if(!faktor) faktor = 1;  
                  var div = document.createElement('div');  
                  var s = div.style;  
              	s.border = 'none';  
              	s.padding = 0;  
                  s.width = faktor + unit;  
                  document.body.appendChild( div );  
                  var px = div.offsetWidth;  
                  document.body.removeChild( div );  
                  return px;  
              }
              
              window.onload = function() {  
              alert(check_px('cm'));  
              }  
              
              

              Bei mir sind es 38px

              Struppi.

              1. WOW... IST JA GEIL!!!

                man, ich bin noch ziemlich unterentwickelt mit JS, wich ichs sehe...
                Also wenn ichdas richtig verstehe, mit der Funk. check_px kann ich
                ausrechnen wieviel px in einem cm sind (bei geg. auflösung)

                Und diesen Wert kann ich dann verwenden, um weiterzurechnen, gel?

                1. Hi,

                  Und diesen Wert kann ich dann verwenden, um weiterzurechnen, gel?

                  kommt darauf an, ob es darauf ankommt. Als Näherung mag es taugen, für mehr jedoch ganz sicher nicht.

                  Cheatah

                  --
                  X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                  X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                  X-Will-Answer-Email: No
                  X-Please-Search-Archive-First: Absolutely Yes
            2. Hi,

              Ich verkaufe Schilder. Der Benutzer kann 2x Zeilen eingeben.
              Ausserdem kann er die Schriftart und Schriftgrösse angeben.

              lass die Schriftgröße in einer zentimeterbasierten Einheit angeben, beispielsweise cm, in, pt oder pc. Rechne diese in eine *beliebige*, wenn auch sinnvolle, pixelbasierte Größe um. Es ist irrelevant, wie viele Zentimeter ein (z.B.) 10cm langer Schriftzug auf einem Bildschirm misst, da zu viele Faktoren diesen Wert beeinflussen, welche Du nicht ermitteln kannst.

              Beispielsweise die Größe des Bildschirms.

              Ich muss anhand dieser Werte ausrechnen wie gross die Höhe und Breite
              des Schildes ist und zwar in mm.

              Weise darauf hin, dass die Technik es nicht erlaubt, exakte Werte abzubilden. Ein wesentlicher Umstand ist, dass sich das Font-Rendering auf dem Nutzerrechner signifikant von dem des Schild-herstellenden Systems unterscheiden kann.

              Was ich bis jetzt mache ist, diese Text in ein Div element reinschreiben
              und die offsetWidth auslesen... Aber ist halt nicht genau...

              Und wird es niemals sein. Egal was Du machst.

              Cheatah

              --
              X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
              X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes
              1. Hi Cheatah,

                ich danke dir für die Aufklärung. In cm die Schriftgrösse anzugeben ist natürlich perfekt. Dass sich die Darstellung von der eigentlichen Ausgabe am Drucker unterscheidet macht nichts.

                DANKE DIR!!!

                Grüsse - Mischa

        2. HI Net4Speed

          Danke vielmals für die SCHNELLE antwort.

          ... komisch, ich habe gelesen, dass pixel relative Werte sind
          und von Auflösung zur Auflösung anders dargestellt werden.

          Bin ich richig in meiner Vermutung dann:

          1em = 12pt = 16px = 0.3527*12mm = 4.232mm ?

          Grüsse - Mischa

          1. Hi,

            ... komisch, ich habe gelesen, dass pixel relative Werte sind
            und von Auflösung zur Auflösung anders dargestellt werden.

            ja, natürlich. Ein Pixel kann je nach Bildschirmgröße und -auflösung unterschiedlich groß sein. Es passiert jedoch höchst selten, dass jemand mit dem Zentimetermaß auf seinem Bildschirm rumhantiert. Pixel ist *die* absolute Größe auf Screen-Medien.

            Bin ich richig in meiner Vermutung dann:

            Nein.

            1em = 12pt = 16px = 0.3527*12mm = 4.232mm ?

            1em = die im Betriebssystem/Browser/anderen Komponenten eingestellte Schriftgröße, die beliebig viele Pixel groß ist und dadurch, verstärkt durch den o.g. Umstand, beliebig viele Zweiundsiebzigstel Zoll (also pt) umfasst. Welche Rolle spielt das aber?

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes