ed elements. When an element is floated it is removed from the document flow. This means that it can no longer interact with other elements, including having an influence over the height of its parent element. Basically, a container with only floated child elements doesn't know it has anything in it at all, and so it snaps it's borders and background shut.
IE has an autoenclosing behavior which overrides this part of the specs, which is why the border shows up in that browser. To get FF to mimic that behavior, there are several options.
The easiest is to add a float property to the container. A floated parent will expand to contain it's floated children.
If, however, this causes other problems with your layout, you can add a "clearing element," most commonly a <br style="clear:both;" />, to the END of the container (just before the container's closing tag).
Another option is Clearing a float with structural markup [positioniseverything.net].
Yet another option (although a possibly unstable one) is setting the overflow property on the parent to auto (see this thread [webmasterworld.com]).
Options abound. Pick the one that best suits your needs and your fancy.