In x-Richtung geht es leider nicht ohne das innerHTML-'Gehampel'; ein leerer div hat keine Breite...
Bei mir schon.
function emToPx(w) {
if (!w)
w = 1;
var div = document.createElement("div");
div.style.width = w.toString() + 'em';
Das toString() macht JS von alleine.
div.style.overflow = "hidden";
und das ist hier wiederrum nicht nötig.
div.innerHTML = 'm';
ebenso
document.body.appendChild(div);
var h = div.offsetWidth;
document.body.removeChild(div);
return h;
}
Ich komm auf das um eine relative Einheit in Pixel umzurechenen:
function check_px(unit)
{
if(!document.createElement) return;
if(!unit) unit = 'em';
var div = document.createElement('div');
div.style.width = '1' + unit;
document.body.appendChild( div );
var px = div.offsetWidth;
document.body.removeChild( div );
return px ;
}
Frage: In welcher Maßeinheit sind denn die size-Angaben in font?
Browserspezifisch?
Struppi.