Moin!
Natürlich ist mir das Box Model - Problem mit dem IE5.x/Win bekannt. Jetzt heisst es überall entweder padding und border mit festen Breiten vermeiden oder verschachtelte Elemente, bzw. Tanteks Hack anwenden. Dabei komme ich (jedenfalls subjektiv) bereits seit Ewigkeiten mit !important zum gleichen Ergebnis. Habe ich da ein Problem übersehen, dass mir bei Testen bisher nicht aufgefallen ist oder warum wird nirgends über !important in diesem Zusammenhang berichtet?
Würdest du deinen Vorschlag noch ein wenig ausführen?
Namen irgendwelcher Hacks interessieren mich eher weniger. Aber ich habe eigentlich noch keinen Hack gesehen, den man abschließend als wirklich "sicher" bezeichnen könnte.
Meine Vorgehensweise ist eigenlich immer gewesen, in der Tat die gleichzeitige Zuweisung von border und/oder padding in Verbindung mit width zu vermeiden. Der Vorteil dabei: Das Resultat ist allein auf Basis der existierenden CSS-Regeln eindeutig definiert.
Alle "Hacks" haben immer das Problem, dass sie von gewissen Voraussetzungen im Können oder Nichtkönnen der Browser ausgehen.
Tanteks Hack funktioniert beispielsweise nur dann, wenn der Browser
- entweder das Box-Model nicht versteht _und_ das erste "}" im CSS als Regelende sieht (deswegen der Klimmzug mit voice-family),
- oder das Box-Model versteht, und den Klimmzug mit Voice-Family auch erkennt,
- oder aufgrund gewisser anderer Unstimmigkeiten im eigenen CSS-Verständnis zumindest die letzte Regel kennt, und damit die korrekte Breite sieht.
Glücklicherweise gibts derzeit keinerlei Browser, die nicht unter eine dieser Kategorien fallen. Insbesondere ist der IE als böser Kandidat zu betrachten, denn noch weiß niemand, inwiefern Microsoft beim nächsten Update nicht irgendwelche dummen Bugs einbaut, die den Browser dann zufällig durchs Raster fallen lassen.
Man zitiert mich unter http://www.parterremedia.de/csswork/css-box-modell/boxmodell-04.html mit diesem Beitrag im Selfforum: http://forum.de.selfhtml.org/archiv/2002/4/8574/#m47646.
Auch wenn der Beitrag nun nahezu zwei Jahre alt ist, denke ich nicht, dass sich die Lage seitdem wirklich geändert hat. Sie hat sich lediglich aufgrund der fehlenden Updates seitens Microsoft noch nicht wirklich dramatisch aktualisiert, man konnte also entweder mit den immer näher am Standard agierenden "anderen Browsern" wie Opera, Mozilla, Safari, Konqueror etc. rechnen, die sowieso in Sachen "Breite" immer schon alles richtig gemacht haben, oder auf der anderen Seite mit dem IE und dessen Unzulänglichkeiten agieren.
Ich sehe auch in der täglichen Realität nicht das Problem. Mein "Hack"-Vorschlag addiert zum HTML statt eines einzelnen <div> ein doppeltes <div><div>. Das äußere <div> kriegt die Breite, das Innere border und padding - und fertig ist der "Hack".
Dieser Hack hat keinen Namen. Hab' ich damals wohl vergessen, für mich zu reklamieren. :) Oder jemand anderes war schneller als ich und hat sich das Teil vor mir ausgedacht, ihm aber auch keinen Namen gegeben. Egal. Ist in jedem Fall ein zuverlässiger Hack, egal welcher Browser kommt. Wenn man denn überhaupt hacken will.
- Sven Rautenberg
"Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)