So how do you then layout the page as you would like to see it (i.e. logo at the top,then navbar,then content)? Doesn't this approach force you to use absolute positioning for each of the divs? If so then how do you avoid the page getting messed up when the user changes the size of the text?
Also, what about browsers that don't support stylesheets, or accessiblilty tools that read pages out.. won't this present the page in a slightly odd order for them?
put the <h1> tag at the top, the SE's like this ;)
And the by putting in it's own div you can then achieve this layout using floats, and it should suit your purpose. The logo can still be absolutely positioned, if required. If your viewers crank up their font size (and you have any text in that header div)then the only part of your design liable to "break" is the "graphic" logo will look out of context (but will they mind?)..or you could put your big picture as the background to your header div and give it a fixed height to suit the height of your graphic (if no text in header). If there would be text in the header then a background image would also work (I did one that I "blended" so that as the header expands the picture will remain in the same position and will seem to fade out naturally rather that a "clean line" that absolute positioning would show..)
re: The!important rule it will not override a users stylesheet if they also have!important set against the same attribute, and I think font-size is default setting!important in a users sheet isn't that what gives the browser the ability to "zoom" (well not IE)...