Als erste Aussage gilt: Das was der HTML-Code beschreibt, ist noch lange nicht das, was die Browser auch wirklich ausgeben und anzeigen.
Mein Gefühl ist, dass seit vielen Versionen der FireFox Browser, eher das ausgibt, was man erwartet. Vor allem die verschiedenen internet Explorer Versionen reagieren sehr unterschiedliche auf Maßangaben (Breite, Höhe, Ränder, Abstände). Ohne CSS Hacks (kann man googlen) und Browser-Weichen (kann man auch googlen) wird man es nicht schaffen ein anspruchsvolles Design für verschiedene Browser gleichzeitig möglichst ident zu gestalten.
Für die Tests von verschiedenen Browsern empfiehlt sich v.a. für den IE, sogenannte Multi-Browser-Tools, mit dem verschiene IE-Versionen gleichzeitig verfügbar sind. d.h. auf einem PC läßt sich eine Seite mit verschiedenen IE Versionen gleichzeitig betrachten. Analog sind nat. verschiedene Browser zu installieren.
Selbst bei technischen Funktionen, die in Javascript geschrieben sind, gibt es bestimmte Seiteneffekte. Ich habe ein einer Schnellbestellung programiert. Dabei sollten mehrer Produkte gleichzeitig in den Warenkorb. Lief die Funktion zu 95% im FireFox korrekt ab, verursachte der gleiche Javascript-Code im IE zu 100% sicher einen Time-Out-Fehler.
Das Grundproblem ist: Das HTML, CSS und Javascript im Moment der Ausgabe interperetiert wird und damit vom Programm des Ausgabe abhängt und damit unterschiedlich sein kann (und wird).
Wer heute ein Design oder eine Funktion entwickelt muss beachten, für welche Browser diese Funktion kompatibel sein muss. Und das bedeuted nat. mehrfache Entwicklungen und umfangreiche Tests.
Suchen Sie einfach mal in » Google oder » 3px Fehler.