Stefan Rohloff: Lösung

Beitrag lesen

Oh, du hast ja viel geschrieben ... danke! :-)

Das sind natürlich alles keine riesigen, unüberwindlichen Probleme, aber wenn du ohnehin eine fixe Schriftgrößenbasis von 16px=1em hast, kannst du dir diese ganzen Probleme auch sparen, indem du gleich Pixel als Größenangabe verwendest.

Da ich die Seite zuvor in em hatte stört mich das natürlich nicht ... aber prinzipell sehe ich das genau so wie du.

Und der zweite Punkt ist: Deine Lösung führt nur dann zu identischen Größen im IE, wenn dort als Standardschriftgröße 16 Pixel eingestellt sind.

Ja, ich wusste gar nicht, dass man beim IE die Standardgröße ändern kann. Wie geht denn das?
Wenn aber jemand im IE unbedingt eine größerer Standardschrift eingestellt hat, dann will er die ja auch unbedingt haben ... und bekommt sie auch ... ist doch ok so.

Du versuchst also, die Flexibilität von relativen Größenangaben zu kombinieren mit deinem Wunsch nach festen Schriftgrößenangaben, und erzeugst dir damit unter Umständen ärgerlichere Nebeneffekte, als wenn du einfach akzeptierst, dass der IE zwar in seiner Standardeinstellung keine Schriftgrößenänderung erlaubt, wenn man px als Einheit verwendet, und damit ein wesentlich einfacheres CSS-Leben hättest.

Stimmt. Was ich gerne hätte ist px, aber mit der Freiheit für den User, sie zu skalieren ... denn ich mache das selber hin und wieder, z.B. wenn ich meinen kleinen Sohn im Tragetuch habe und nicht so nah an den Computer herankomme ;-)
Die Unanehmlichkeiten in der Programmierung würde ich dafür gerne in Kauf nehmen ...

Unter dem Strich könnte man es zusammenfassen zu:
Alle anderen Browser außer dem IE sind von dir zu festen Schriftgrößen gezwungen, egal ob du direkt px oder diese px/em-Kombi verwendest, und sie können die Schriftgröße per Zoom benutzerdefiniert trotzdem problemlos ändern. Es macht also keinen Unterschied, welche Methode du verwendest (abgesehen von den em-Problemen oben).

Genau ...

Bei dem IE hoffst du bei deiner px/em-Kombi darauf, dass die Standardeinstellung der Schriftgröße von 16px nicht verändert ist. Nähmst du px direkt, müßtest du hoffen, dass all diejenigen Benutzer, denen deine Schrift zu klein ist, wissen, dass man die Standardeinstellung des IE ändern kann, um auch px-Angaben vergrößern oder verkleinern zu können. Du bist also bei beiden Methoden drauf angewiesen, dass der IE "passend" eingestellt ist, ansonsten hast du
a) entweder die falsche Basisschriftgröße oder
b) eine nicht skalierbare Website (was keinem normalen IE-Benutzer auffallen wird, weil eigentlich alle Massenwebsites derzeit auf px-Angaben setzen, die Skalierung des IE also sowieso nirgendwo greift - und alle IE-Benutzer, die das dennoch benötigen, werden den IE passend eingestellt haben, dass sie die Schriftgröße dennoch skalieren können - sofern sie nicht sowieso einen anderen Browser benutzen).

Würde ich mich für a) entscheiden, weil ich denke, dass es einen Grund hat, denn ein User die Basisschriftgröße im IE dauerhaft verändert. Bei b) kann ich nicht einschätzen, ob alle großen Sites tatsächlich auf px setzten, also eh niemand auf die Idee kommen würde, bei meiner Seite zu versuchen, die Schrift zu skalieren.

Müsste man nur noch schauen, was der IE7 macht:
Ob er px skalieren kann und ob er html>body weiterhin nicht lesen kann.

Mit Pech passiert genau das, was du nicht gebrauchen kannst, und was nicht passieren würde, wenn du dich einfach dazu bekennen würdest, deine Schrift- und sonstigen Größen in Pixeln anzugeben - was du defacto tust.

So schlimm wäre da ja nicht, dann müsste man die Weiche halt z.B. mit <!--[if lt IE 7]> machen ...

Dieser Trick ist in meinen Augen ein ziemlicher Etikettenschwindel.

Das sind harte Worte ... ;-)

Liebe Grüße und Danke
Stefan