Thomas Meinike: (Javascript) IE: currentStyle-Werte in Pixeln

Beitrag lesen

Hallo,

Die Möglichkeit em in px umzurechnen ist genau dann möglich, wenn die fontsize bekannt ist.
Und der Browser berechnet sich ja eine konkrete Schriftgröße, die er dann benutzt.

Nur verrät er mir eben nicht, so daß ich mir nicht ausrechnen kann, wieviel Pixel padding 1em bedeutet.

Vielleicht hilft dieser (evtl. etwas naiv gedachter Ansatz) Umrechnungsversuch weiter:

  
...  
<script type="text/javascript">  
<!--
  
function Test()  
{  
  var bodyobj,oldmar,oldpad,newp,anzahl,em_px,pr_px;  
  
  if(document.body && document.body.currentStyle)  
  {  
    bodyobj=document.body;  
    oldmar=bodyobj.currentStyle["marginTop"];  
    oldpad=bodyobj.currentStyle["paddingTop"];  
  
    bodyobj.style.marginTop="0px";  
    bodyobj.style.paddingTop="0px";  
  
    newp=document.createElement("p");  
    bodyobj.insertBefore(newp,bodyobj.firstChild);  
  
    anzahl=10; // hier auch mal andere Werte testen  
  
    newp.style.marginTop=anzahl+"em";  
    em_px=newp.offsetTop/anzahl;  
  
    newp.style.marginTop=anzahl+"%";  
    pr_px=newp.offsetTop/anzahl;  
  
    bodyobj.removeChild(newp);  
  
    bodyobj.style.marginTop=oldmar;  
    bodyobj.style.paddingTop=oldpad;  
  
    alert("1em = "+em_px+"px\n1% = "+pr_px+"px");  
  }  
}
  
//-->  
</script>  
</head>  
<body onload="Test()">  
</body>  
...

MfG, Thomas