+3  A: 

Check your footer CSS... if you have overflow set to anything but auto/scroll, then the DIV won't grow.

If not try using something other than DL/DT since DT's are inline elements, they won't push your div to fit content.*

e.g. just try using a DIV instead, if the footer grows, you have your answer.

(note: I revised order of suggestions)

*(I realize spec-wise, that this Shouldn't be an issue, but there wasn't an indication of which browsers this was occuring in, thus I would not be at all surprised if IE was rendering differently than expected for example)

scunliffe
Why would inline elements not increase the size of the div? Unless there's CSS to float everything or the div has overflow settings like you say, dl/dt/dd should be fine.
_Lasar
Once I set the overflow to auto, the footer expands and the background color appears. I didn't adjust the DL/DT's either.Thanks!
kevtrout
Sorry, but this answer is complete nonsense. stevemegson has given the correct answer. Setting `overflow` here is wrong and the remark about `dt`s not growing the box is completely off the mark.
Konrad Rudolph
I may have rushed to answer here without knowing enough about the code.The CSS was a likely culprit, but there were other unknowns. I should have reversed the a/b options... check the CSS, if ok, verify the elements work.
scunliffe
Why is setting overflow wrong?
kevtrout
Setting overflow is a great way to make a container expand to contain its floated children, as described at for example http://www.quirksmode.org/blog/archives/2005/03/clearing_floats.html
Gareth
@Gareth: true, I even said as much in http://stackoverflow.com/questions/218760#218809. I was just confused because in the context of the answer, this advice was bogus. As a solution, it's probably workable here.
Konrad Rudolph
A: 

The browser doesn't care if your content is generated by PHP or comes from a static HTML file.

The issue will most likely be in your CSS. Either the content you put in the footer has positioning properties (like float:left or position:absolute) that place them "outside" the div or the div has a fixed size and/or overflow properties set.

I'd suggest posting your CSS file here or (if it's too large) put it up somewhere where we can take a look. The finished HTML (you could just save a static copy of the output if your system isn't online yet) wouldn't hurt either.

_Lasar
+1  A: 

Without seeing the CSS, my guess would be that your <dl>s are floated to get them side-by-side. The containing <div> then won't expand to contain them. If so, adding a

<div style='clear:both;'></div>

before the final </div> should fix it.

stevemegson
This works just as well as setting oveflow:auto; on the footer div
kevtrout
A: 

By the way, your use of the <dl> element is wrong: you are missing the <dd> element. Items in the definition list always consist of one definition term and one or more definitions (which, in your code, are missing).

Also, rather than using <div style='clear:both;'></div> as suggested by Steve, I'd suggest explicitly stating the height of your <dt> elements. This way, the floats don't have to be cleared.

Konrad Rudolph