Good morning!
Also ich weiß nicht, mir kommt die Positionierung der Elemente etwas komisch vor. Mag sein dass ich mich irre und meine Vorstellung falsch ist, aber meines Erachtens nach kann ein Element nur oben ODER unten, respektive links ODER rechts sein. Ein bündiges abschließen ergibt sich dann automatisch durch die Abmessungen von 100%.
Nein, das ist im Standard ausdrücklich so vorgesehen: Wenn man zwei gegenüberliegende Positionen angibt, werden beide berücksichtigt, und die Breite bzw. Höhe ergibt sich daraus.
Heißt konkret, die Angabe von bottom: 0px; top: 0px; und das Fehlen einer Höhenangabe für #footer würde ich für die Ursache halten.
Damit allerdings kannst Du trotzdem recht haben, denn ein gewisser, nicht ganz so standardkonformer Browser sieht es auch so, wie Du oben geschrieben hast. ;-)
Für bottom: -1px; anzugeben, halte ich für eine suboptimale Lösung, immerhin verschiebt es bei den Browsern wo es vorher funktioniert hat ja jetzt den Footer um 1px aus dem Bild.
Der Einwand ist berechtigt, aber Cyx23 hat ihn schon bedacht und deswegen den Star-HTML-Hack angewandt, dank dessen standardkonforme Browser die Angabe ignorieren.
@Adda: IMHO kannst Du diese Lösung bedenkenlos verwenden. Nebenwirkungen auf andere Browser werden nicht auftreten.
Viele Grüße vom Længlich