Here are a few tips you can wrap your mind around:
*If you don't specify the height of a div, it adjusts dynamically depending on the content
*Adding padding to layout divs can really screw you up depending on the circumstances. If you have strange, unexplained spaces, try turning off padding
*If the width of a div is not specified, it is automatically set to 100%.
*If the wrapper div is set to 80% and the header that's inside the wrapper is set to 100%, both divs will be 80% of the page depending on your screen resolution. The width of each div is dependent on its parent element. In this case, the parent element of the wrapper is the body, so by setting the width of the wrapper to 80%, it's relative to the body and everything inside the wrapper is relevant to the initial size of the wrapper.
*If you want to make your wrapper and absolute width (I'd recommend 950px if you want to do this), you'll have problems in IE if you set say the header (or any other div inside the wrapper that's supposed to span across it all the way) to 100%. To fix this, simply specify each element in pixels instead of percentages. IE doesn't mix pixels and percentages very well. It works great in all other browsers, but...*Grumble*