Unless you specified a width on #container, width: 100% on #header means nothing. You do not need to declare display: block on natively block level elements (e.g. div, h#, p, etc). Why would you have a header that is display: inline containing block level elements? This makes no sense.
Now, on to your question - the path to the background file needs to be relative to your css file directory, not to your HTML file. That's a common mistake that people make, could that be your problem? I think you might need to put something in your div's, like rather than leave them empty.