Die Positionierungswerte (top/right/bottom/left) bei position:absolute beziehen sich auf die Kanten der Box, die vom »containing block« erzeugt wurde. Wenn du einem Element position:relative gibst, so wirkt es als containing block für darin liegende, absolut positionierte Elemente.
Mit der Kombi von position:relative für ein Containerelement (in deinem Fall wohl body) und position:absolute für Kindelemente kannst du die Kindelemente relativ zum Container ausrichten. position:relative reicht, du musst dann keine Verschiebung angeben. Dann liegt der body dort, wo er auch ohne position:relative liegen würde.
Mathias