Hallo Roland,
definierst du das gesunde Mittelmaß denn bei < 1?
es gibt ja auch verschiedene Ansätze was beim Netscape 4 an CSS zumutbar ist...
Eine Faustregel müsste für vorsichtige Naturen schon sein expressions ganz zu vermeiden, andererseits läßt sich sehr schön damit nachhelfen.
Erstens gehört die Scripting-Engine des M$IE zu den schnellsten überhaupt und zweitens kann ich die Schleife in den von mir eingesetzten Beispielen (max-width für body) nicht nachvolliehen. Die Darstellung wird ausschließlich bei Veränderung der Fenstergröße neu berechnet -- wie sonst auch.
Also ich würde das mit setInterval vergleichen, if(body.clientWidth>500) ...style.width.. usw., d.h. es wird alle 1/10 Sekunde o.ä. geprüft, also bereits hier die Schleife. Weiterhin vermute ich mal dass auch der Style neu gesetzt wird, ob da auch neu gerendert wird wäre nochmal ein anderes Thema, vmtl. nicht.
Insofern ist gegen eine Expression erstmal wenig einzuwenden, nach meinen Erfahrungen können aber schon drei bis vier Expressions einen Seitenaufbau massiv verzögern.
Deshalb mein Hinweis, es nicht zu übertreiben. Ich habe allerdings nur davon gelesen, es noch nicht selbst erlebt. Hast du vielleicht ein Beispiel parat?
Da hatte ich für meine Beispiel-Seiten eine IE-Variante entwickelt, der Seitenaufbau hat sich um einige Sekunden verzögert, ich hab dann doch em eingesetzt, ähnlich wie:
span.test, p, ul {font-size:expression(parseInt(document.body.currentStyle.fontSize)*1.15+'px');
line-height:expression(parseInt(document.body.currentStyle.fontSize)*1.45+'px')}}
p.foo small, p.foo {font-size:expression(parseInt(document.body.currentStyle.fontSize)*.8+'px')}
div.code, div.cd, div.nr, pre {font-size:expression(parseInt(document.body.currentStyle.fontSize)+'px');
line-height:expression(parseInt(document.body.currentStyle.fontSize)*1.2+'px')}
div.code, div.smp {width:expression(parseInt(document.body.currentStyle.fontSize)*50+'px');}
div.code,div.smp{ margin-left:expression(document.body.clientWidth*0.1);}
Das kann ich nicht ganz nachvollziehen. Der Doctype wird einmal festgelegt und ändert sich danach nicht mehr. IMHO sollte daher ein Test mit allen Versionen, die Expressions unterstützen ausreichen.
Es ist doch schon vorstellbar dass du bei einem Projekt den Rendermodus/ doctype des IE ändern möchtest?
Über eine Absturzvariante ist vielleicht auch etwas im Archiv zu finden.
Ansonsten ist es schon sehr aufwändig z.B. bei Fenstergrössenänderungen alle Abläufe zu erwischen, dein "ein Test mit allen Versionen, " wird schon bei einem Browser ein äusserst ausgiebiges Programm, und wenn je nach Layout auch noch die eingestellte Schriftgrösse wichtig ist weil diese indirekt die Breiten von Elementen beeinflusst ...
Grüsse
Cyx23