So anything that should be doen in the div tag gets re directed to the commands in the header tags.
See, this is the sort of question I don't mind answering, because you've clearly gone away, thought about things and attempted them first. It's a fairly basic question - but a perfectly valid one.
The big answer to "why" is that CSS aims to separate style and content. It's not always been used that way as it's been abused heavily over the years, but now things are settling down that's definitely the way it SHOULD be used. If you deal with all your style information in the header, or better yet a separate file, you don't need to touch your content if you want to change the style around. So say you marked up all important paragraphs with a class="ip" marker. And say they were all red at present, but you wanted to make them blue, with a green background (NEVER do those colours in real life, it's just an example!)
If you're using the old method of font tags or even embedding CSS into each element, you've got to go through and manually change each "important" paragraph in your document. Got 1? Not to much of a hassle. Got 5? Achievable. Got 100? 5000? On large websites, this wouldn't be unrealistic - and changing that lot all by hand wouldn't be fun.
Using external / embedded CSS, you just make one change - you specify the colour for everything using the "ip" class, and it all changes over like that. Much better for maintainability, and much better for design. There's a lot of other arguments for it, but that's one of the main ones.