I'd try to give some width to my divs. If your entire page is 800 px then;
.page{your stuff}
.top-div{width:800px; float:left; margin:0 auto;}
.logo{float:left; width:200px;margin:0 auto;}
.toparea{float:left; width:600px; margin:0 auto; }
.sidebar{float:left; width:200px; margin:0 auto;}
.mainpart{float:left; width:600px; margin:0 auto;}
.bottompart{float:left; width:800px; margin:0 auto;}
Imagine css as lego. if you put something on your 4 block size logo, it should stay there perfectly, if not check the size or your alignments.
edit: this is not a solution, just a hint to give you idea about what to do.