Nachdem keiner einer bessere lösung weiß hab ich mir jetzt eine funktion geschrieben die jeden Buchstaben des worts
prüft und den em-wert festlegt.
Ist zwar keine schöne Lösung aber Sie funzt erstmal (drecks IE)
Für die die es interessiert:
PHP-Code:
function CalculateStringWidthInEm($string) {
$counter = 0;
while (strlen($string) > 0) {
$sign = substr($string, 0, 1);
switch($sign) {
case 'i':
case 'l':
$counter += 0.35;
break;
case ' ':
$counter += 0.45;
break;
case 'I':
case 'j':
case 'r':
$counter += 0.5;
break;
case 'f':
$counter += 0.55;
break;
case 'J':
case 'L':
case 'k':
case 's':
case 't':
case 'x':
case 'z':
$counter += 0.65;
break;
case '1':
$counter += 0.75;
break;
case 'A':
case 'B':
case 'C':
case 'E':
case 'F':
case 'D':
case 'G':
case 'H':
case 'K':
case 'N':
case 'P':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'X':
case 'Y':
case 'Z':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'g':
case 'h':
case 'n':
case 'o':
case 'p':
case 'q':
case 'u':
case 'v':
case 'y':
case '0':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
$counter += 0.85;
break;
case 'O':
$counter += 0.9;
break;
case 'Q':
$counter += 0.95;
break;
case 'M':
case 'm':
case 'w':
default :
$counter += 1;
break;
case 'W':
$counter += 1.15;
break;
}
$string = substr($string, 1);
}
return $counter;
}