Mag schon stimmen dass der IE6 alt ist aber so wie du meine Seite gesehen hast kann ich da keine IE-Nutzer drauflassen. Sonst sind sie gleich wieder weg.
ich weiss nicht, was du mit deiner seite angestellt hast - der code den du verfasst hast, ist valide - aber das ist nicht alles (mehr dazu später)
Eigentlich geht es mit kleinen Einschränkungen schon aber ständig sind Workarounds gefragt.
mit kleinen einschränkungen heisst "es geht nicht" ;) es gibt nur schwarz und weiss - darstellung wie gewünscht oder darstellung nicht wie gewünscht (aber in akzeptablen rahmen) ;)
Ich nutze meistens em als Maßangabe [...]
ist auch gut so ;)
[...]Er ist alt und macht Fehler. Und das ist nunmal anders als es sein soll. Er stellt es nicht so dar wie es in moderneren Browser passiert und diese Darstellung ist einfach nicht richtig.
und genau darum gehts mir: dass er etwas nicht wie gewünscht darstellt wird, ist es in fast 100% der fälle entwender ein html/css-fehler oder ist absolut standardkonform, weil ein browser eine verwendete eigentschaft nicht unterstützt - wenn eine css-eigenschaft nicht unterstütz wird, soll sie ignoriert werden
bugs sind im vergleich dazu selten an fehlern schuld
Weil das für die Praxis überhaupt nichts nützt...
es ist mir klar, dass es "falsch" im sinne von "nicht wie gewünscht" ist, aber genau diese erkenntnis ist der schlüssel zum erfolg und ist EXAKT der nutzen für die praxis:
um dein problem zu beseiten, nutze ausschließlich css-eigenschaften, die von allen browsern unterstützt werden - also den kleinsten gemeinsamen nenner
ein beispiel: der internet explorer 6 unterstütz kein position fixed ungeachtet der usability-probleme die durch position fixed entstehen, hast du folgende möglichkeiten
a) verzichte gänzlich auf ein design basierend auf dieser eigenschaft und machs anders
b) du ignorierst das fehlverhalten völlig (schlechte idee aufgrund des verbreitunsgrads des ie6)
c) du nutzt einen workaround (zb position absolute als ersatz) mit leicht abweichender darstellung aber uneingeschränkter benutzbarkeit
c) du nutzt einen workaround mit javascript um das verhalten zu erzeugen (ohne javascript fällst du auf variante b) oder c) zurück)
im falle deines menüs verwendest du tabellen-eigenschaften, die so vom internet-explorer nicht unstützt werden (sowohl von version 7 alsauch version 6), das heisst für dich in etwa:
möglichkeit 1) verzichte auf die gleichmäßige verteilung der spaltenbreiten - jeder menüpunkt hat links und rechts padding - die punkte sind unterschiedlich breit
möglichkeit 2) hardcodiere die spaltenbreiten mit %-angaben (nachteil: wenn ein menüpunkt dazu kommt, oder wegfällt, musst du das css ändern)
möglichkeit 3) alle browser mit entsprechender css-tauglichkeit bekommen deine ursprüngliche variante vorgesetzt, der rest bekommt variante 2 vorgesetzt und zusätzlich variante 3 mit javascript - das schließt dann etwa 5% der benutzer mit ie von exakt der gewünschten darstellung aus
nochmal (auf die gefahr, dass ich mich wiederhole): trenne dich von der vorstellung, dass alles in jedem browser exakt gleich aussehen muss - klar, "darstellugsfehler" die zur unbenutzbarkeit der seite führen, sind nicht vertretbar - aber die obrige lösung ist sicher vertretbar
min-width/max-width ist für möderne browser kein problem, der ie6 kanns nicht - lösung wäre meiner ansicht nach: ie6 bekommt eine feste breite und mit javascript wird zusätzlich min und max-width simuliert breite - wer den ie6 benutzt und kein javascript hat, hat einfach pech gehabt und soll gefälligst seinen broser updaten